在preferenceClick在android系统不工作 [英] onPreferenceClick not working in android
本文介绍了在preferenceClick在android系统不工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有问题,实施preference。
当我运行我的应用程序,然后单击preference标签没有任何反应。
我不知道什么是错的code,因为logcat中不显示任何内容。
而在此先感谢。
公共类重置扩展$ P $ {pferenceActivity私人preference我的preference;保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
我的preference =找到preference(重置);
我的preference.setOn preferenceClickListener(新在preferenceClickListener(){ 在preferenceClick(preference为arg0)公共布尔{
建设者alertDialog =新AlertDialog.Builder(Reset.this);
alertDialog.setMessage(复位?);
alertDialog.setCancelable(真);
alertDialog.setPositiveButton(是,新DialogInterface.OnClickListener(){
公共无效的onClick(DialogInterface对话,诠释它){
共享preferences设置= preferenceManager.getDefaultShared preferences(getBaseContext());
共享preferences.Editor编辑= settings.edit();
editor.clear();
editor.commit();
}});
alertDialog.setNegativeButton(否,新DialogInterface.OnClickListener(){
公共无效的onClick(DialogInterface对话,诠释它){
dialog.cancel();
}});
alertDialog.show();
返回false;
}
});}}
XML:
<?XML版本=1.0编码=UTF-8&GT?;
< preferenceScreen的xmlns:机器人=http://schemas.android.com/apk/res/android>
< preference机器人:标题=重设分数机器人:键=复位>
< / preference>
< / preferenceScreen>
解决方案
这行添加到您的code:
添加preferencesFromResource(R.xml preferences);
这code工作:
进口android.app.AlertDialog;
进口android.app.AlertDialog.Builder;
进口android.content.DialogInterface;
进口android.content.Shared preferences;
进口android.os.Bundle;
。进口的Android preference preference;
。进口的Android preference preference.On preferenceClickListener。
。进口的Android preference preferenceActivity;
。进口的Android preference preferenceManager。公共类复位扩展$ P $ {pferenceActivity私人preference我的preference;@覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
加preferencesFromResource(R.xml preferences);
我的preference =找到preference(重置);
我的preference.setOn preferenceClickListener(新在preferenceClickListener(){
在preferenceClick(preference为arg0)公共布尔{
建设者alertDialog =新AlertDialog.Builder(Reset.this);
alertDialog.setMessage(复位?);
alertDialog.setCancelable(真);
alertDialog.setPositiveButton(是,新DialogInterface.OnClickListener(){
公共无效的onClick(DialogInterface对话,诠释它){
共享preferences设置= preferenceManager.getDefaultShared preferences(getBaseContext());
共享preferences.Editor编辑= settings.edit();
editor.clear();
editor.commit();
}});
alertDialog.setNegativeButton(否,新DialogInterface.OnClickListener(){
公共无效的onClick(DialogInterface对话,诠释它){
dialog.cancel();
}});
alertDialog.show();
返回false;
}
});}}
和记得添加您的活动:恢复的清单:
I have problem implementing Preference. When i run my app and click on the preference tab nothing happens. I don't know what is wrong with the code, Because logcat don't show anything. And thanks in advance.
public class Reset extends PreferenceActivity{
private Preference myPreference;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myPreference = findPreference("reset");
myPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) {
Builder alertDialog = new AlertDialog.Builder(Reset.this);
alertDialog.setMessage("Reset?");
alertDialog.setCancelable(true);
alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
} });
alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
} });
alertDialog.show();
return false;
}
});
}
}
XML:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<Preference android:title="Reset Score" android:key="reset">
</Preference>
</PreferenceScreen>
解决方案
Add this line to your code:
addPreferencesFromResource(R.xml.preferences);
This code is working:
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
public class Reset extends PreferenceActivity{
private Preference myPreference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
myPreference = findPreference("reset");
myPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) {
Builder alertDialog = new AlertDialog.Builder(Reset.this);
alertDialog.setMessage("Reset?");
alertDialog.setCancelable(true);
alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor editor = settings.edit();
editor.clear();
editor.commit();
} });
alertDialog.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
} });
alertDialog.show();
return false;
}
});
}
}
And remember to add your activity: Reset to the Manifest:
这篇关于在preferenceClick在android系统不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文