为了账号安全,请及时绑定邮箱和手机立即绑定

更新 SQLite 数据

更新 SQLite 数据

UYOU 2021-10-06 10:52:34
菜单项else if (id == R.id.favourites){        if (item.isChecked()) item.setChecked(false);        else item.setChecked(true);        return true;数据库助手public class DatabaseHelper extends SQLiteOpenHelper {// Table Namepublic static final String TABLE_NAME = "Contacts";// Table columnspublic 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 Informationstatic final String DB_NAME = "MessagePlus_Contacts";// database versionstatic final int DB_VERSION = 1;// Creating table queryprivate 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);}@Overridepublic void onCreate(SQLiteDatabase db) {    db.execSQL(CREATE_TABLE);}@Overridepublic 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 来说很不确定,而且我想知道如何使检查和取消检查永久化,因为一旦我退出活动将再次取消检查......
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

要保存复选框的状态,请使用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;

}


查看完整回答
反对 回复 2021-10-06
  • 2 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信