gpt4 book ai didi

首选项屏幕中的android EditText

转载 作者:行者123 更新时间:2023-11-29 22:21:13 25 4
gpt4 key购买 nike

我可以在首选项屏幕中放置 EditText 元素吗?

我想这样做是为了通过键入快速搜索大型 ListPreference,但不想保存搜索框的内容?这是否可能,或者是否不允许在首选项屏幕上使用标准布局控件。

目标是提供一种选择时区并将其保存为首选项的方法。单独使用 ListViewPrefernce 是不够的,因为必须滚动大量时区。因此,我想提供一种“ super 搜索”类型的输入框,用户可以在其中输入时区或时区的一部分来缩小列表框的选择范围。

最佳答案

您可以做的只是制作一个标准的 Preference,它将显示一个包含 EditText 的对话框,并添加一个 ontextchangelistener:

searchET.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});

至于显示搜索结果,我不知道。我以前从未专门尝试过任何此类操作,但它似乎对您有用,而且您必须弄清楚执行搜索本身所需的任何代码,但这会添加初始功能。

编辑:按照标准偏好,我的意思是在 XML 中:

<Preference
android:title="Time Zone"
android:summary="Choose your time zone"
android:key="timeZone"/>

然后在您的 PreferenceActivity 中添加以下内容:

Preference timeZone = (Preference)findPreference("timeZone");
timeZone.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {

@Override
public boolean onPreferenceClick(Preference arg0) {
showDialog(1);
return false;
}
});



@Override
protected Dialog onCreateDialog(int id) {

switch (id) {

case 1:
final EditText searchET = new EditText(this);
//do the searchET.addTextChangedListener here
return new AlertDialog.Builder(this)
.setTitle("Choose Time Zone")
.setView(showAppString)
.setPositiveButton(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
//save the time zone to sharedPreferences
SharedPreferences pref = PreferenceManager.getDefaultSharedPreference(this);
SharedPreferences.Editor editor = pref.edit();
editor.putString("TIME_ZONE", TZ.toString());

}//closes the onClick
})//closes the onclicklistener
.show();
}//closes the switch

}//closes the oncreatedialog

不过,我认为您实际上可以只使用 EditTextPreference,然后将 TextChangedListner 添加到 EditTextPreference,因为我认为它继承了 EditTexts 的所有内容。不过,我不是积极的。

关于首选项屏幕中的android EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7137912/

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