通过列表视图在“编辑”文本中搜索时挂起问题

时间:2014-04-09 07:08:41

标签: android android-listview android-edittext android-keypad

我开发了一个应用程序,其中包含一个列表视图和一个用于在列表视图中搜索功能的编辑文本,但是我的问题是我在列表视图中有大约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);
        }
    });

1 个答案:

答案 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;
    }
});