繁体   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