在我的首选项页面中,我希望在任何给定时间删除存储在数据库中的所有信息。
点击首选项后,如何设置onclick
事件? onClick
应该导致从我的sqlite
数据库调用delete方法。我试过在网上看,但对我来说没什么用。这不是重复的,因为我已经尝试了它并且它不起作用,因为它被折旧并且回调到java没有其他答案
你能否告诉我我将使用的代码,因为我不明白该怎么做?
preferences.xml(for onClick)
<Preference android:title="@string/delete_all_expense"
android:summary="@string/delete_all_expense_detail"
android:key="delete_all_expense"
/>
PreferenceActivity.java
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v7.app.AppCompatActivity;
public class PreferencesActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onSupportNavigateUp() {
finish();
return true;
}
public static class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
}
删除方法表单DatabaseHelper(如果需要)
public void deleteAllExpense(){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME,null,null);
db.execSQL("delete from "+ TABLE_NAME);
db.execSQL("TRUNCATE table" + TABLE_NAME);
db.close();
}
答案 0 :(得分:0)
如果这对您不起作用,您可以像这样实现自己的偏好:
public class CustomPreference extends Preference implements Preference.OnPreferenceClickListener {
public CustomPreference(Context context, AttributeSet attrs) {
setOnPreferenceClickListener(this)
}
public boolean onPreferenceClick(Preference pref) {
//delete your data
return true
}
}
使用以下内容将其添加到.xml布局中
<your.package.name.CustomPreference
etc.../>