如果想要清除缓存,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
答案 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;
}
});