Search code examples
androidandroid-listviewandroid-edittextandroid-keypad

hanging issue in Search in Edit text through List View


i have developed an application that contain one List view and one Edit Text for searching functionality in list view its work but my problem is i have about 4000 item in list view so when I am type in Edit Text its load with hang because i have lots of data so i want to implement like when m press enter key of key board then its search that specific word

my code of activity

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

Solution

  • 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;
        }
    });