簡體   English   中英

如何在PreferenceActivity活動中具有數據庫訪問權限?

[英]How to have database access in a PreferenceActivity activity?

在android中,我有一個從PreferenceActivity派生的類,以便設置首選項並進行一些管理。 其中之一是重置數據庫,即刪除數據庫中的每個項目並創建一個空項目。

現在,由於某些原因,數據庫類(更具體地說是SQLiteOpenHelper )需要一個Context 但是看起來類PreferenceActivity無法轉換為Context 因此,編譯失敗。

那么如何獲取Context呢? 或者如何以其他方式訪問數據庫? 還是我做的方式完全錯誤?

這也是代碼:

public class UserSettingActivity extends PreferenceActivity{

    private Preference myPreference;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        myPreference = findPreference("reset");
        myPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference arg0) {
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(UserSettingActivity.this);
                alertDialog.setMessage("Are you sure to delete the database?");
                alertDialog.setCancelable(true);
                alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        final DBAdapter db = new DBAdapter(this);
                        db.resetDatabase();

                    } });
                alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.cancel();
                    } });
                alertDialog.show();
                return false;
            }
        });

    }

}

附帶說明:該代碼包含不建議使用的代碼指令。 我將提出一個單獨的問題來解決這個問題...

使用UserSettingActivity.this 這是可能的,因為PreferenceActivity源自Context請參見http://developer.android.com/reference/android/preference/PreferenceActivity.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM