Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置活动中的if()_Java_Android_Android Preferences_Preferenceactivity - Fatal编程技术网

Java 设置活动中的if()

Java 设置活动中的if(),java,android,android-preferences,preferenceactivity,Java,Android,Android Preferences,Preferenceactivity,我是一个Android初学者,想在我的设置/首选项活动中提出一个if问题 以下是我的Preferences.java: package net.dominik.genpush; import android.os.Bundle; import android.preference.PreferenceActivity; public class Preferences extends PreferenceActivity{ @Override protected void

我是一个Android初学者,想在我的设置/首选项活动中提出一个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>
但我不知道当复选框更改时如何启动methode。 另一方面,我可以使用

android:onClick=“MethodeNameHere”在my activity.xml-File中。这在我的PreferenceActivity类中不起作用,因此没有消息


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

如果您只是试图使一个属性依赖于另一个属性,您可以使用
android:dependency
属性。这能满足你的要求吗?例如:

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

    <!-- This setting will be disabled if pref_one is not checked -->
    <CheckBoxPreference
        android:defaultValue="false"
        android:key="preference_two"
        android:dependency="pushCheckBox"
        android:title="Pref Two" />

您可以为复选框设置侦听器

CheckBoxPreference checkBox = (CheckBoxPreference) findPreference("pushCheckBox");
checkBox.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object value) {
                //your code here
                return true;
            }
});
根据return true,将使用新值更新首选项的状态


如果勾选了复选框,只需在监听器内部进行检查。

请查看此链接谢谢您的回复,但这不是我想要的。我认为@bgplaya的做法是正确的:)谢谢你的回答。在onPreferenceChange方法中我应该做什么?因为android studio想要一个返回参数
Preference pushCheckBox = findPreference("pushCheckBox");
pushCheckBox.setOnPreferenceClickListener(new OnPreferenceClickListener() {

    @Override
    public boolean onPreferenceClick(Preference preference) {

        // do something here

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