从Edittext Android在listview中过滤文本

从Edittext Android在listview中过滤文本,android,filter,android-listview,android-edittext,autosuggest,Android,Filter,Android Listview,Android Edittext,Autosuggest,我有一份城市名单(大约2500个)。我希望用户在该列表的edittextbox中键入内容时获得自动建议。这是如何实现的?我在谷歌上搜索了一遍又一遍,但找不到任何关于这方面的教程。非常感谢您的帮助。 谢谢。您应该使用来实现这一点 以下代码片段显示了如何创建一个文本视图,该视图在用户键入时建议各个国家/地区的名称: public class CountriesActivity extends Activity { protected void onCreate(Bundle icicle)

我有一份城市名单(大约2500个)。我希望用户在该列表的edittextbox中键入内容时获得自动建议。这是如何实现的?我在谷歌上搜索了一遍又一遍,但找不到任何关于这方面的教程。非常感谢您的帮助。 谢谢。

您应该使用来实现这一点

以下代码片段显示了如何创建一个文本视图,该视图在用户键入时建议各个国家/地区的名称:

public class CountriesActivity extends Activity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         setContentView(R.layout.countries);

         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                 android.R.layout.simple_dropdown_item_1line, COUNTRIES);
         AutoCompleteTextView textView = (AutoCompleteTextView)
                 findViewById(R.id.countries_list);
         textView.setAdapter(adapter);
     }

     private static final String[] COUNTRIES = new String[] {
         "Belgium", "France", "Italy", "Germany", "Spain"
     };
 }
公共类CountriesActivity扩展活动{
创建时受保护的空隙(捆绑冰柱){
超级冰柱;
setContentView(R.layout.countries);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_下拉列表_项目_1行,国家/地区);
AutoCompleteTextView文本视图=(AutoCompleteTextView)
findViewById(R.id.国家/地区列表);
setAdapter(适配器);
}
私有静态最终字符串[]国家/地区=新字符串[]{
“比利时”、“法国”、“意大利”、“德国”、“西班牙”
};
}
您应该使用来实现这一点

以下代码片段显示了如何创建一个文本视图,该视图在用户键入时建议各个国家/地区的名称:

public class CountriesActivity extends Activity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         setContentView(R.layout.countries);

         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                 android.R.layout.simple_dropdown_item_1line, COUNTRIES);
         AutoCompleteTextView textView = (AutoCompleteTextView)
                 findViewById(R.id.countries_list);
         textView.setAdapter(adapter);
     }

     private static final String[] COUNTRIES = new String[] {
         "Belgium", "France", "Italy", "Germany", "Spain"
     };
 }
公共类CountriesActivity扩展活动{
创建时受保护的空隙(捆绑冰柱){
超级冰柱;
setContentView(R.layout.countries);
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_下拉列表_项目_1行,国家/地区);
AutoCompleteTextView文本视图=(AutoCompleteTextView)
findViewById(R.id.国家/地区列表);
setAdapter(适配器);
}
私有静态最终字符串[]国家/地区=新字符串[]{
“比利时”、“法国”、“意大利”、“德国”、“西班牙”
};
}

使用AutoCompleteTextview,以下是开发站点(页面底部)的教程

使用AutoCompleteTextview,以下是开发站点(页面底部)的教程

您可以使用“”从其他列表中进行搜索。 实现您自己的筛选器[MyFilter extends filter]并覆盖“FilterResults performFiltering(CharSequence prefix)”和“void publishResults(CharSequence constraint,FilterResults results)”方法,以在您自己的数据(国家/地区列表)上实现您自己的搜索逻辑

在适配器中添加一个getMyFilter()方法,该方法将返回一个“new myFilter” 在“编辑文本”中添加“文本观察者” 在TextWatcher的“onTextChanged()”方法中,通过调用myAdapter.getMyFilter()”获取您的筛选器。在该筛选器上,调用“myFilter.filter(myTypedString)”

过滤“无效publishResults(CharSequence约束,FilterResults结果)后,将调用”方法。在该方法中,更改实际适配器数据以刷新UI。

您可以使用“”从其他列表中搜索。 实现您自己的筛选器[MyFilter extends filter]并覆盖“FilterResults performFiltering(CharSequence prefix)”和“void publishResults(CharSequence constraint,FilterResults results)”方法,以在您自己的数据(国家/地区列表)上实现您自己的搜索逻辑

在适配器中添加一个getMyFilter()方法,该方法将返回一个“new myFilter” 在“编辑文本”中添加“文本观察者” 在TextWatcher的“onTextChanged()”方法中,通过调用myAdapter.getMyFilter()获取过滤器。在该筛选器上,调用“myFilter.filter(myTypedString)”


过滤“无效publishResults(CharSequence约束,FilterResults结果)后,将调用方法。在这里面,更改实际适配器数据以刷新UI。

非常感谢。但我想做的稍微不同。我有一个适配器,用于列出前10个CTIE(这是一个静态列表)。现在,当用户在编辑文本框中键入时,我希望从我拥有的其他城市列表中选择过滤器。如何实现这一点?编写一个自定义适配器并将其传递给AutoCompleteTextView使用AutoCompleteTextView比edittext和listview有什么好处,并将键入的文本传递给列表适配器的过滤器?非常感谢。但我想做的稍微不同。我有一个适配器,用于列出前10个CTIE(这是一个静态列表)。现在,当用户在编辑文本框中键入时,我希望从我拥有的其他城市列表中选择过滤器。如何实现这一点?编写一个自定义适配器并将其传递给AutoCompleteTextView使用AutoCompleteTextView优于edittext和listview并将键入的文本传递给列表适配器的筛选器有什么好处?