如何在Android浏览器设置中点击ListPreference

时间:2011-03-02 19:23:59

标签: android preferences

如果想要清除缓存,Android浏览器的设置允许单击ListPreference。如果用户单击该ListPreference,则不会显示任何列表 - 而是会弹出一个对话框。

我想使用类似的功能来停止正在运行的服务。

我在应用程序设置中创建了一个没有android:entries和android:entryValues标签的条目:

 <ListPreference
     android:key="list_stop"
     android:title="@string/txt_stopservice" />

不,我试着抓住点击:

 listPreferenceServiceStop = (ListPreference) preferenceScreen.findPreference("list_stop");
 listPreferenceServiceStop.setOnPreferenceClickListener(new OnPreferenceClickListener() {

    public boolean onPreferenceClick(Preference preference) {
        Tools.showToast(context, "BlaBla");
        return true;
    }

 });

如果用户点击此条目,则会显示以下错误:

  

java.lang.IllegalStateException:ListPreference需要一个entries数组和一个entryValues数组。

Android浏览器设置也不显示值。

他们是如何做到的?这是抓住点击的正确方法吗?

非常感谢提前。 HJW

2 个答案:

答案 0 :(得分:1)

为什么使用ListPreference?您应该使用DialogPreference代替。

答案 1 :(得分:0)

    ListPreference myVar = (ListPreference) findPreference("key you define at xml");

    myVar.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        public boolean onPreferenceClick(Preference preference) {

            Toast.makeText( getBaseContext(), "clicked", Toast.LENGTH_LONG ).show();

            return true;
        }

    });