gpt4 book ai didi

android - 如何取消 ListPreference 点击?

转载 作者:行者123 更新时间:2023-12-05 00:07:39 26 4
gpt4 key购买 nike

我有 3 个偏好设置:
- 用于输入网址的 EditTextPreference
- 用于输入端口的 EditTextPreference
- 一个 ListPreference,用于显示由前两个设置定义的网页中的某些元素(例如 http://www.igs-ip.net:2101)。

为了使其可行,我想在点击第三个设置时验证网络连接。到目前为止,我能够捕捉到动态填充 ListPreference 的点击:

ListPreferenceDynamic dlp = (ListPreferenceDynamic)findPreference(strKey);
dlp.setOnClickListner(new ListPreferenceDynamicOnClickListener()
{
public void onClick(ListPreferenceDynamic preference)
{
String[] astr = astrOpenWebPageAndGetInfo(strAddress, strPort);

if (astr != null)
{
preference.setEntries(astr);
preference.setEntryValues(astr);
}
}
});

我现在的问题是找到一种方法来防止在出现问题时显示 ListPreference 对话框,比方说,与 Internet 地址有关。我只想显示 Toast 来解释问题,而不显示空的 ListPreference 对话框。

最佳答案

有点晚了,但也许对你们中的一些人仍然有用:

我认为 OnPreferenceChangeListener 可以解决这个问题。如果您想接受新值,只需注册一个并返回 true,如果您想取消点击,则返回 false:

yourPreference.setOnPreferenceChangeListener((preference, newValue) -> {

if(condition){
showToast();
return false; //cancel the click
}
else return true; //accept the click
});

参数 newValue 确定您的偏好的新的可能值。

关于android - 如何取消 ListPreference 点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13472648/

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