我正在创建一个Android应用,其中有一个listeview,并且搜索通过EditText进行过滤。
我想知道的是,例如,Instagram如何显示分类搜索的预览?
让我更好地解释一下,如果在Instagram上查看“伦敦”,我会出现在字段列表中,例如,其中有城市图标,并在其旁边带有“伦敦”字样。字段上写有“ #london”,另一个字段上写有“ London”以及下面的用户照片。
在“编程”中分为几类或几部分的搜索名称是什么?
我想在我的App中进行操作,但是问题是我不知道该怎么称呼。
如果我有一个列表视图并想通过搜索过滤它,当我输入单词“ London”时,它会立即向我显示与“ London”同名的商品,而不是我想要像Instagram这样的搜索,结果会先过滤掉类别,然后单击类别会显示结果。
这种做法叫什么名字?
答案 0 :(得分:0)
使用类似的东西:
private ArrayAdapter<String> mAdapter;
private String[] data = {"myname","myname2","myname3","myname4","myname5"};
private EditText searchBox;
private ListView mListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
searchBox = findViewById(R.id.searchBox);
mListView = findViewById(R.id.mListView);
mListView.setTextFilterEnabled(true);
mAdapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, data);
mListView.setAdapter(mAdapter);
searchBox.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
MainActivity.this.mAdapter.getFilter().filter(arg0);
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
});
}
现在,如果在编辑文本中输入“ myname2”,则ListView将仅显示它。对于GridView / RecyclerView,可以使用类似的方法。