Android的复选框preference [英] Android Checkbox preference

查看:155
本文介绍了Android的复选框preference的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我找不到复选框preference任何教程。我可以用一个列表preference,但我不能使用复选框preference。现在,我想,如果用户设置的checbox,举杯味精说真,如果他设置它关闭,敬酒味精说假。到目前为止,我有这样的:

preferences.xml:

 <复选框preference
          机器人:标题=查看调用UI
          安卓:设置defaultValue =真
          机器人:总结=显示通话界面点击呼叫按钮,当
          机器人:关键=复选框preF/>
 

编辑preferences.java:

 公共类编辑preferences扩展preferenceActivity {

    字符串列表preference;
    布尔复选框preference;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        加preferencesFromResource(R.xml preferences。);
    }

    公共无效ONSTART(意向意图,诠释startId){
        获得preFS();
    }

    私人无效的get preFS(){
        共享preferences preFS = preferenceManager
                .getDefaultShared preferences(getBaseContext());
        名单preference = prefs.getString(名单preF,NR1);
        复选框preference = prefs.getBoolean(注记格preF,真正的);
    }
}
 

编辑:解感谢David Caunt:

 复选框preF。
    西顿preferenceChangeListener(新preference.On preferenceChangeListener(){

    在preferenceChange公共布尔(preference preference,对象为newValue){
        如果(newValue.toString()。等于(真)){
            Toast.makeText(getApplicationContext(),CB:+真,
                                                    Toast.LENGTH_SHORT).show();
        } 其他 {
            Toast.makeText(getApplicationContext(),CB:+假,
                                                    Toast.LENGTH_SHORT).show();
        }
        返回true;
    }
});
 

解决方案

您需要一个监听器添加到preference在onCreate方法

 最后的CheckBox preference复选框preF =(复选框preference)获得preferenceManager()。找到preference(复选框preF);

    复选框pref.setOn preferenceChangeListener(新preference.On preferenceChangeListener(){
        在preferenceChange公共布尔(preference preference,对象为newValue){
            Log.d(MyApp的,preF+ preference.getKey()+改为+ newValue.toString());
            返回true;
        }
    });
 

I cannot find any tutorials on checkbox preference. I can use a listpreference, but I can't use checkbox preference. For now, I want that if user sets on the checbox, a toast msg says "true" and if he sets it off, the toast msg says "false". So far I have this:

preferences.xml:

 <CheckBoxPreference
          android:title="Show Call UI"
          android:defaultValue="true"
          android:summary="Show Call Interface when clicking call button"
          android:key="checkboxPref" />

EditPreferences.java:

public class EditPreferences extends PreferenceActivity {

    String ListPreference;
    boolean CheckboxPreference;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }

    public void onStart(Intent intent, int startId) {
        getPrefs();
    }

    private void getPrefs() {
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext());
        ListPreference = prefs.getString("listPref", "nr1");
        CheckboxPreference = prefs.getBoolean("checkboxPref", true);
    }
}

Edit: Solution thanks to David Caunt:

checkboxPref.
    setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {

    public boolean onPreferenceChange(Preference preference, Object newValue) {
        if (newValue.toString().equals("true")) {
            Toast.makeText(getApplicationContext(), "CB: " + "true",
                                                    Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(getApplicationContext(), "CB: " + "false",
                                                    Toast.LENGTH_SHORT).show();
        }
        return true;
    }
});

解决方案

You need to add a listener to the Preference in your onCreate method

    final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("checkboxPref");

    checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {            
        public boolean onPreferenceChange(Preference preference, Object newValue) {
            Log.d("MyApp", "Pref " + preference.getKey() + " changed to " + newValue.toString());       
            return true;
        }
    }); 

这篇关于Android的复选框preference的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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