2011-03-02 33 views
0

Android Browser的设置允许在需要清除缓存时单击ListPreference。如果用户点击该ListPreference,则不显示列表 - 将弹出一个对话框。如何在Android浏览器设置中点击ListPreference如

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

我创建的应用程序设置,而Android的条目:条目和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需要一个条目数组和一个entryValues数组。

Android Browser设置不显示值。

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

非常感谢提前。 HJW

回答

1

为什么使用ListPreference?您应该改用DialogPreference

+0

感谢您的回答。我以前从未使用过DialogPreferences。如果您查看浏览器设置,它们看起来与ListPreferences完全相同。它运作完美。谢谢。 –

+0

不客气:)很高兴工作。不知道是否有某些使用ListPreference的特殊原因。 – kcoppock

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; 
     } 

    }); 
相关问题