如何在preference.xml窗口中创建RadioButton组? [英] How to create RadioButton group in preference.xml window?

查看:155
本文介绍了如何在preference.xml窗口中创建RadioButton组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Java Android开发的初学者。我正在使用Eclipse SDK 3.6.1版本。我有一个带有两个复选框和一个后退按钮的首选项窗口。

I'm beginner in Java Android developing. I'm using Eclipse SDK 3.6.1 version. I have a preferences window with two checkbox and one back button.

    <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
             <PreferenceCategory
             android:title="PIN requirement">                
            <CheckBoxPreference                        
                    android:title="Use PIN" 
                    android:defaultValue="true"                                              
                    android:key="checkboxPref" /> 
           <CheckBoxPreference
                    android:title="Don't use PIN"
                    android:defaultValue="false"                        
                    android:key="checkboxPref2" />

                    </PreferenceCategory>

<PreferenceCategory>
    <Preference
            android:title="Back"                
            android:key="customPref" />
    </PreferenceCategory>
</PreferenceScreen>

如何将两个CheckBox更改为RadioButton组?

How to change two CheckBox in to the RadioButton group?

推荐答案

如果只需要启用或禁用PIN,则在这种情况下仅一个CheckBoxPreference就足够了(请参见下面的示例代码,第一类)。当您需要从设置列表(ListPreference)中选择某项时(例如,请参见示例代码,第二类),通常使用RadioButton来选择颜色。

If you need just to enable or disable using PIN, only one CheckBoxPreference will be enough in this case (see example code below, First Category). RadioButtons are usually used, when you need to choose something from a list of settings (ListPreference) - for example (see example code, Second Category), to pick a color.

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="First Category">
        <CheckBoxPreference
            android:title="Using PIN"
            android:defaultValue="false"
            android:key="checkboxPref" 
            android:summaryOn="Disable PIN" 
            android:summaryOff="Enable PIN"/>
    </PreferenceCategory>

    <PreferenceCategory
        android:title="Second Category">
        <ListPreference
            android:title="Pick your favourite color"
            android:key="listPref"
            android:defaultValue="4"
            android:entries="@array/listArray"
            android:entryValues="@array/listValues" />
    </PreferenceCategory>
</PreferenceScreen>

此示例的源代码为:

public class PreferencesHelpExample extends PreferenceActivity implements OnSharedPreferenceChangeListener {

    public static final String KEY_LIST_PREFERENCE = "listPref";

    private ListPreference mListPreference;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);

        // Get a reference to the preferences
        mListPreference = (ListPreference)getPreferenceScreen().findPreference(KEY_LIST_PREFERENCE);

    }

    @Override
    protected void onResume() {
        super.onResume();

        // Setup the initial values
        mListPreference.setSummary("Current value is " + mListPreference.getEntry().toString());

        // Set up a listener whenever a key changes            
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();

        // Unregister the listener whenever a key changes            
        getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);    
    }

    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        // Set new summary, when a preference value changes
        if (key.equals(KEY_LIST_PREFERENCE)) {
            mListPreference.setSummary("Current value is " + mListPreference.getEntry().toString()); 
        }
    }
}

对于ListPreference,您还需要一个位于值文件夹中的arrays.xml文件:

For ListPreference you will also need an arrays.xml file, which is located in the "values" folder:

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string-array name="listArray">
        <item>red</item>
        <item>orange</item>
        <item>yellow</item>
        <item>green</item>
        <item>blue</item>
        <item>violet</item>
    </string-array>

    <string-array name="listValues">
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
        <item>5</item>
        <item>6</item>
    </string-array>

</resources>

另请参阅一些与PreferenceActivity合作的出色示例-他们对我有很大帮助:

See also some great examples, working with PreferenceActivity - they helped me a lot:

Android首选项;

如何创建一组RadioButton而不是列表;

当前值如何在首选项摘要中显示Android首选项的当前值?

这篇关于如何在preference.xml窗口中创建RadioButton组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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