更新 SQLite 数据

菜单项


else if (id == R.id.favourites){

        if (item.isChecked()) item.setChecked(false);


        else item.setChecked(true);

        return true;

数据库助手


public class DatabaseHelper extends SQLiteOpenHelper {


// Table Name

public static final String TABLE_NAME = "Contacts";


// Table columns

public static final String ID = "ID";

public static final String Contact_Name = "Contact_Name";

public static final String Phone_Number = "Phone_Number";

public static final String Favourites = "Favourites";


// Database Information

static final String DB_NAME = "MessagePlus_Contacts";


// database version

static final int DB_VERSION = 1;


// Creating table query

private static final String CREATE_TABLE = "Create Table " + TABLE_NAME + "(" + ID

        + " INTEGER PRIMARY KEY AUTOINCREMENT, " + Contact_Name + " TEXT NOT NULL, " + Phone_Number + " INT NOT NULL, " + Favourites + " INT NOT NULL);";


public DatabaseHelper(Context context) {

    super(context, DB_NAME, null, DB_VERSION);

}


@Override

public void onCreate(SQLiteDatabase db) {

    db.execSQL(CREATE_TABLE);

}


@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);

    onCreate(db);

}


public void insertData(String contactName, String phoneNumber) {


    SQLiteDatabase db = this.getWritableDatabase();


    ContentValues values = new ContentValues();


    values.put(DatabaseHelper.Contact_Name, contactName);

    values.put(DatabaseHelper.Phone_Number, phoneNumber);

    values.put(DatabaseHelper.Favourites, "No");


    db.insert(DatabaseHelper.TABLE_NAME, null, values);

    // close db connection

    db.close();

}


public int addToFavourites(String favourites) {

    SQLiteDatabase db = this.getWritableDatabase();


    ContentValues values = new ContentValues();

    values.put(DatabaseHelper.Phone_Number, favourites);


    // updating row

***IM NOT SURE HOW TO WRITE THE QUERY***

}

} 我还没有为更新编写代码行...


当它被选中时,我希望数据库列说“是”,当它被取消选中时,我希望它说“不”......对 sqlite 来说很不确定,而且我想知道如何使检查和取消检查永久化,因为一旦我退出活动将再次取消检查......


UYOU
浏览 185回答 2
2回答

忽然笑

要保存复选框的状态,请使用SharedPefrences//globally declare it    SharedPreferences.Editor editor;    public void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.filters);     editor = getSharedPreferences("STATE", MODE_PRIVATE).edit();     SharedPreferences settings =       PreferenceManager.getDefaultSharedPreferences(this);    boolean state = settings.getBoolean("isChecked", false);    if(state){    //set the checkbox checked    }else{    //set the checkbox Unchecked    }    }}    else if (id == R.id.favourites){            if (item.isChecked()) {            item.setChecked(false);            editor.putBoolean("isChecked", false)             editor.apply();            }            else {            item.setChecked(true);             editor.putBoolean("isChecked", true)             editor.apply();            }            return true;      }更新数据库使用这个public int Update(int id) {    SQLiteDatabase db = this.getWritableDatabase();     ContentValues values = new ContentValues();    values.put(Note.COLUMN_NOTE, "Yes");     // updating row    return db.update(Note.TABLE_NAME, values, Note.COLUMN_ID + " = ?",            new String[]{String.valueOf(id)}); 在 onCreateOptionMenu 上执行此操作public boolean onCreateOptionsMenu(Menu menu) {    MenuInflater inflater = getMenuInflater();    inflater.inflate(R.menu.options_menu, menu);    //here fetch the data from shared prfrencess which done on oncrete    //use if else here    menu.findItem(R.id.two_week).setChecked(checked);    return true;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java