Android 在用户选中CheckBoxPreference时启用EditTextPreference可见性,或在设置中设置为true

Android 在用户选中CheckBoxPreference时启用EditTextPreference可见性,或在设置中设置为true,android,android-sharedpreferences,setting,checkboxpreference,edittextpreference,Android,Android Sharedpreferences,Setting,Checkboxpreference,Edittextpreference,可以设置android:enabled=“false”的EditTextPreference这是在用户检查时默认设置的,如果用户单击然后单击EditTextPreference启用(true)。。 如果取消选中,则它将进入启用(假) 这就是问题所在。您可以在您的首选项片段中以编程方式完成它 public class PreferenceFragment extends android.preference.PreferenceFragment 使用以下代码:以编程方式启用/禁用复选框 @

可以设置android:enabled=“false”EditTextPreference这是在用户检查时默认设置的,如果用户单击然后单击EditTextPreference启用(true)。。 如果取消选中,则它将进入启用(假)


这就是问题所在。

您可以在您的
首选项片段中以编程方式完成它

public class PreferenceFragment extends android.preference.PreferenceFragment
使用以下代码:以编程方式启用/禁用复选框

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
        pref1 = (CheckBoxPreference) getPreferenceManager().findPreference("bookATrainer");
        pref2 = (CheckBoxPreference) getPreferenceManager().findPreference("cancelBooking");

        pref1.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference preference) {
                if (pref1.isChecked()) {
                    pref1.setChecked(false);
                } else {
                    pref2.setChecked(true);
                }
                return true;
            }

        });
        pref2.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference preference) {
                if (pref2.isChecked()) {
                    pref2.setChecked(false);
                } else {
                    pref1.setChecked(true);
                }
                return true;
            }

        });
    }
}

请改写您的问题,但听起来您想启用或禁用基于复选框的选项。将依赖项置于
hourBooking

android:dependency="cancelBooking"

我真的无法理解您的问题,我们可以在MainActivity extands AppCompatActivity中执行此操作吗?在您的activity onCreate中,使用以下命令调用首选项片段:
android.app.FragmentManager fm=getFragmentManager();fm.beginTransaction().replace(R.id.content_frame,new PreferenceFragment()).commit()。。。这段代码我已经完成了。。但我仍然想启用false。当用户单击设置并设置CheckBoxPreference(取消预订)时,此EditTextPreference将为true或可见。。