gpt4 book ai didi

Android 如何在 PreferenceScreen 长时间操作期间禁用复选框

转载 作者:太空狗 更新时间:2023-10-29 12:57:29 27 4
gpt4 key购买 nike

我从 xml 加载了这个 PreferenceScreen。问题是当我切换复选框时我正在启动服务需要 5-10 秒才能连接到服务器。我怎样才能在这段时间内禁用复选框。由于布局膨胀,我看不到如何获取 checkbox.setEnable = false?

<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<CheckBoxPreference
android:key="checkBoxenableincomingcall"
android:title="Enable incoming call"
android:defaultValue="true"
android:summary="hasse running as background service" />
<CheckBoxPreference
android:key="checkBoxmakephoneringonincoming"
android:title="Dont ring on message"
android:defaultValue="true"
android:summary="dont disturb me" />
<EditTextPreference
android:key="edittexvalue"
android:title="EditText"
android:summary="EditTextPreference" />

public class EditPreferences extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

addPreferencesFromResource(R.xml.preferences);
}

最佳答案

让您的 PreferenceActivity 实现 OnPreferenceChangeListener,然后用它注册您的复选框。当您检测到它已被按下时,禁用首选项

//in onCreate
findPreference("checkboxpreferencekey").setOnPreferenceChangeListener(this);


public boolean onPreferenceChange(Preference preference, Object newValue){
if(preference.getKey().equals("checkboxpreferencekey")){
preference.setEnabled(false);
return true;
}
else return true;
}

这就是您可以禁用它的方法,您仍然需要从您的服务中进行某种回调或广播,以了解何时再次启用它。但到了时候,您会以同样的方式进行操作。

findPreference("checkboxpreferencekey").setEnabled(true);

关于Android 如何在 PreferenceScreen 长时间操作期间禁用复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4774916/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com