猿问

如果 SQLite 中的值为 null,则跳过插入

在插入到 Android SQLite 数据库时,我想跳过用户未填写的值。但我收到空指针异常。


在我的 DBHelper 类中,我尝试了 "... NOT NULL" 并且没有 not null 选项,但我认为这不是解决方案。


 public void addToDb(View view) {

    SharedPreferences sharedPreferences = getSharedPreferences("entry",0);

    float  lastlatitude = sharedPreferences.getFloat("latitude",0f);

    float lastlongitude =  sharedPreferences.getFloat("longitude",0f);

    if (mTitleInput.getText().length() == 0 ||

            mEntryInput.getText().length() == 0) {

        return;

    }

    try {

        Date a = new Date();

        SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM d, ''yy");

        String o = sdf.format(a);


        title = mTitleInput.getText().toString();

        entry = mEntryInput.getText().toString();

        dateStr = o;

        image = getApplicationContext().getFilesDir().getAbsolutePath() + String.valueOf(System.currentTimeMillis()) + ".jpg";

        rating = mRatingBar.getRating();

        latitude = lastlatitude;

        longitude = lastlongitude;


    } catch (NumberFormatException ex) {

        Log.e(LOG_TAG, "Failed to parse party size text to number: " + ex.getMessage());

    }


    // Add to mDb

    addNewEntry(title, entry, dateStr, image, rating, latitude, longitude);




    //clear UI text fields

    mTitleInput.getText().clear();

    mEntryInput.getText().clear();

}


守着一只汪
浏览 294回答 1
1回答

肥皂起泡泡

例如,您必须检查它们是否为空dateStr = o == null ? "" : o;这将检查是否o为空,如果是,则将 dateStr 设置为空,否则将使用 o。您可以将其用于所有变量。
随时随地看视频慕课网APP

相关分类

Java
我要回答