- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实用地将 SwitchPreferenceCompat 的切换开关更改为 true 和 false。但是,在 SettingsFragment 类中,方法 ammendSwitchPreferenceSetting() 首选项变量始终为 null,但是如果我从 onCreatePreferences() 中调用此方法,它将起作用,但我需要在其他地方调用它。
import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.preference.CheckBoxPreference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreferenceCompat;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_activity);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
ActionBar actionBar = getSupportActionBar();
//will allow the user to go back to parent page of the application
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
public static class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
}
public void ammendSwitchPreferenceSetting(String key, boolean value){
//is always null for some reason
SwitchPreferenceCompat preference = findPreference(key);
preference.setChecked(value);
}
}
}
<SwitchPreferenceCompat
android:enabled="true"
android:summary="some summary"
app:defaultValue="true"
app:key="NetworkType"
app:title="some title" />
然后我从另一个类调用它
SettingsActivity.SettingsFragment settingsFragment = new SettingsActivity.SettingsFragment();
settingsFragment.ammendSwitchPreferenceSetting("NetworkType", false);
最佳答案
我正在使用 Kotlin,这就是我更改开关值的方法。
val sharedpref = PreferenceManager.getDefaultSharedPreferences(this).edit()
sharedpref.putBoolean("NetworkType",false).apply()
在java中,会是这样的
sharedpref prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
sharedpref.Editor editor = prefs.edit();
editor.putBoolean("NetworkType",false);
editor.apply();
Note: I didn't teste this Java version, but the concept is like that.
关于java - findPreference() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437192/
当我检查 SharedPreferences 设置指南时,我发现它们同时使用:getPreferenceScreen().findPreference()和findPreference() 就像下面的
我正在尝试实用地将 SwitchPreferenceCompat 的切换开关更改为 true 和 false。但是,在 SettingsFragment 类中,方法 ammendSwitchPrefe
我有一个 fragment ,我尝试从列表中获取我的设置值,购买它时找不到 findPreference 方法,为什么? package com.cetabo.trackingpoint; impor
因此,SettingsActivity 实现了一个 SettingsFragment。我正在学习 Udacity 类(class)。我的主要问题是,findPreference() 不起作用!这是de
当我尝试在 SettingsFragment 中查找 Preference 时,我总是得到 NULL。 设置 fragment public static class SettingsFragment
当我尝试在我的 MainActivity 中初始化 OnSharedPreferencesChanged 监听器时,出现编译器错误无法解析方法 findPreference。根据回答here : fi
我遇到的问题是方法 findPreference 总是返回 null。我已经多次检查 key (即“pref_about”)是否正确,确实如此。 public class SettingsFragme
我正在尝试通过在主菜单中添加电池百分比来修改氰基模组设置 apk,但由于以下错误,我无法这样做:“方法 findPreference(string)”未定义” 我听说你只能从首选项 fragment
我目前正在尝试制作一个设置菜单,它将显示一个 MultiSelectListPreference,以从您的联系人列表中选择多个联系人。 此刻,当我尝试 MultiSelectListPreferenc
我正在处理我的 Android 应用程序的首选项屏幕。如果前一个项目具有特定值,我想禁用(将其灰显)。 我实现了两个类:MainActivity 和 PreferencesActivity。 在 Ma
我想检测 ListView 中包含的 Preference 何时被点击,以便我可以启动一个 Intent 来管理该选择。 我会在我的布局 XML 文件中这样做: 我的 java 代码中有以下内容:
它给我错误“findPreference(java.lang.CharSequence) is deprecated”。目前,我的应用程序的目标是 API 10 及更高版本。任何解决此问题的帮助都将不
我正尝试在与 PreferenceActivity 无关的 Activity 之外使用此代码。我正在尝试这样做,以便我可以访问我的偏好值。 Preference prefNotify = findPr
我想设置一个偏好摘要,通常可以用 EditTextPreference Pref = (EditTextPreference) findPreference(key); Pref.se
我是一名优秀的程序员,十分优秀!