我开发了一个应用程序,其中包含一个列表视图和一个用于在列表视图中搜索功能的编辑文本,但是我的问题是我在列表视图中有大约4000个项目,所以当我输入编辑文本时,它的加载是挂起的,因为我有很多数据,所以我想实现就像当按下键盘输入键然后搜索特定的单词
我的活动代码
list = (ListView) findViewById(R.id.listview);
list.setAdapter(adapter);
list.requestFocus();
editsearch = (EditText) findViewById(R.id.search);
editsearch.setSingleLine(true);
editsearch.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
String text = editsearch.getText().toString()
.toLowerCase(Locale.getDefault());
adapter.filterstd(text);
}
});
答案 0 :(得分:1)
editsearch.setOnKeyListener(new OnKeyListener()
{
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() == KeyEvent.ACTION_DOWN)
{
switch (keyCode)
{
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
String text = editsearch.getText().toString()
.toLowerCase(Locale.getDefault());
adapter.filterstd(text);
return true;
default:
break;
}
}
return false;
}
});