gpt4 book ai didi

java - 具有偏好 Activity 的切换按钮

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:11 25 4
gpt4 key购买 nike

我想在我的首选项/设置 Activity 中使用开关按钮,以在开关关闭时禁用我的应用程序中的某些代码。请任何人给我一些使用使用开关/切换按钮的共享首选项的小教程。我有这段代码,但不知道将我的点击监听器放在哪里以及如何使用它,因此当按钮设置为关闭时它会禁用我的代码的特定部分

首选项.xml:

 <SwitchPreference
android:key="test"
android:title="Test" />

偏好 Activity :

public class TestPrefActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.sample);
}}

在主要 Activity 中

SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(MainActivity.this);
sharedPrefs.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
boolean test = sharedPreferences.getBoolean("test", false);
Log.e(TAG, "Value:" + test);
}
});

最佳答案

这是一个简单的例子:

<SwitchPreference
android:key="test"
android:title="Test"
android:defaultValue="false" />

在您的代码中:

public class TestPrefActivity extends PreferenceActivity implements onSharedPreferenceChangeListener {

public SwitchPreference testPref;

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

testPref = (SwitchPreference) findPreference("test"); //Preference Key
}

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals("test")) {
boolean test = sharedPreferences.getBoolean("test", false);
//Do whatever you want here. This is an example.
if (test) {
testPref.setSummary("Enabled");
} else {
testPref.setSummary("Disabled");
}
}

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

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(TestPrefActivity.this);
boolean test = preferences.getBoolean("test", false);

if (test) {
testPref.setSummary("Enabled");
} else {
testPref.setSummary("Disabled");
}
}
}

SwitchPreference 会自动保存您的键值。您不必为它编写代码。它将被保存为 boolean 值。

然后您可以从任何您想要的 Activity 中检索它,例如:

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean test = sharedPreferences.getBoolean("test", false);

关于java - 具有偏好 Activity 的切换按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32106114/

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