java - 使用设置 Activity 中的条目

标签 java android android-activity

我对 Android 开发还比较陌生,所以请不要反对我。我的问题是,我已经为我的程序创建了一个首选项 Activity ,但不知道如何访问它,以便其他 Activity 从启动时使用/存储这些值。此外,在默认设置 Activity 中,我没有带有箭头的工具栏可以带我返回第一个 Activity 。我在后退箭头上尝试了很多,但不知何故没有任何帮助。非常感谢。

设置- Activity :

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();

    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);
    }
}

}

Settings-Activity

最佳答案

首先向 fragment 添加一个空构造函数:

public SettingsFragment() {
}

您的设置 Activity 需要开始监听更改:

@Override
public void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener( this );
}

@Override
public void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}

您还可以调用 onSharedPreferenceChanged 作为您的首选项的监听器:

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    if( key.equalsIgnoreCase( "key1") ) {
        // example use
        ListPreference lp = (ListPreference) findPreference( key );
        lp.setTitle( lp.getEntry() );
        SettingsActivity.FONT_STYLE = lp.getValue();
    }
    else if( key.equalsIgnoreCase( "key2") ) {
        // example use
        ListPreference lp = (ListPreference) findPreference( key );
        lp.setTitle( lp.getEntry() );
        SettingsActivity.FONT_SIZE = lp.getValue();
    }
}

关于java - 使用设置 Activity 中的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58396478/

相关文章:

android - 如何制作带有点的自定义 TextView ?

android - 将更改发布到通知进度条

Android:如何避免 Activity 被系统杀死,ActivityManager:处理我的包名称(pid 935)已死亡

java - Android HMAC显示意外错误

java - 更改希伯来字母 iText 的书面文本方向

使用 Wildfly 8、Java 1.8.0_45 和 Active Directory 的 Java SSO

java - 修饰符 static 只允许在常量变量声明中使用

java - 扩展自定义布局类 - 从未使用过构造函数

android - 如何在多个 Activity 中使用 BaseGameActivity.getApiClient()?

java - 如何在 Android 中的 spannable 字符串之间留出空间?