gpt4 book ai didi

android - PreferenceActivity 中的启用和禁用选项

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:53 27 4
gpt4 key购买 nike

我是创建 PreferenceActivity 的新手。我的问题是如何通过更改其他首选项来启用和禁用首选项屏幕中的选项?

我的prefs.xml:

<ListPreference
android:entries="@array/units"
android:entryValues="@array/lunits"
android:key="listUnits"
android:summary="Units schosssing"
android:title="Units" android:defaultValue="C"/>

<ListPreference
android:entries="@array/palette"
android:entryValues="@array/lpalette"
android:key="listpalette"
android:summary="Palette schosssing"
android:title="Palette"
android:defaultValue="1"/>

listUnits 中有 2 个选项,Celsius 和 Fahrenheit,所以如果用户选择 Celsius,listpalette 应该被启用,如果用户选择 Fahrenheit 将被禁用,如何我这样做?

我的设置 Activity :

public class SettingsActivity extends PreferenceActivity
{
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
}

public static class MyPreferenceFragment extends PreferenceFragment
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
}

}

最佳答案

此代码可能对您有用。可以作为引用。

首先获取两个 ListPreference 的实例并应用此方法。

ListPreference mlistUnits, mlistPalette;
mlistUnits= (ListPreference)findPreference("listUnits");
mlistPalette= (ListPreference)findPreference("listpalette");

mlistUnits.setEnable(false);
mlistPalette.setEnabled(true);

并使用下面的监听器

OnPreferenceChangeListener listener = new OnPreferenceChangeListener() {    
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// newValue is the value you choose
return false;
}
};

将监听器应用于 ListPreference

mlistPalette.setOnPreferenceChangeListener(listener);

关于android - PreferenceActivity 中的启用和禁用选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20761543/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com