在preferenceClick在android系统不工作 [英] onPreferenceClick not working in android

查看:154
本文介绍了在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:机器人=htt​​p://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;
。进口的Andr​​oid preference preference;
。进口的Andr​​oid preference preference.On preferenceClickListener。
。进口的Andr​​oid preference preferenceActivity;
。进口的Andr​​oid 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆