java - 设置 Activity 中的 if()

标签 java android android-preferences preferenceactivity

我是一名 Android 初学者,想在我的设置/首选项 Activity 中提出一个 if 问题。

这是我的 Preferences.java:

package net.dominik.genpush;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Preferences extends PreferenceActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);
    }
}

...和我的 Prefs.xml:

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

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <CheckBoxPreference
        android:key="pushCheckBox"
        android:title="@string/pushnachr_headline"
        android:summary="@string/pushnachr_explain"
        android:defaultValue="true">

    </CheckBoxPreference>

</PreferenceScreen>

现在我想做一些类似的东西

public void onCheckboxPush(View b)
    {
        if (pushCheckBox.isChecked())
        {
           //CODE
        }
        else...

但不知道当复选框更改时如何启动该方法。 以另一种方式我可以使用

android:onClick="MethodeNameHere"在我的 Activity.xml 文件中。这在我的 PreferenceActivity 类中不起作用,因此没有消息。

是否有一种(简单)方法可以以类似的方式执行“onClick”之类的操作?

最佳答案

您可以为复选框设置监听器。

CheckBoxPreference checkBox = (CheckBoxPreference) findPreference("pushCheckBox");
checkBox.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object value) {
                //your code here
                return true;
            }
});

根据documentation返回 true 将使用新值更新 Preference 的状态。

并且只需检查监听器内部是否选中了复选框。

关于java - 设置 Activity 中的 if(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25816379/

相关文章:

java - "static final int"是什么意思?

java - 解析xml文件的递归方式

java - eclipse运行后老是崩溃

运行新应用程序时的 Android 动画

android - 将 Listview 嵌入到 Android 的首选项中

java - 为什么我的 Java 骰子游戏不断重复滚动?

Android - 将触摸事件发送到其他 View

Android - 以编程方式截取屏幕截图而无需引用 View /Activity

android - 如何在 EditTextPreference 摘要中显示当前值(就像 ListPreference 可以做的那样)?

android - 如何获取Android Preferences DataStore的所有键