How can I filter ListView data when typing on EditText in android

后端 未结 6 2106
醉话见心
醉话见心 2020-11-27 16:27

I have a ListView and a EditText. How can I filter ListView data when typing on EditText?

6条回答
  •  情话喂你
    2020-11-27 16:49

    Search a listview based on input in EditText

         public class MainActivity extends Activity {
    private ListView lv,lv2;
    private EditText et;
    String listview_array[]={"01634 ABOHAR","080 Bangalore","011 Delhi","Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "1234", "iPhone 4S", "Samsung Galaxy Note 800", "Samsung Galaxy S3", "MacBook Air", "Mac Mini", "MacBook Pro"};
    private ArrayList array_sort = new ArrayList();
    int textlength = 0;
    
    public void onCreate(Bundle savedInstanceState)
    
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.ListView01);
        lv2 = (ListView) findViewById(R.id.ListView02);
        et = (EditText) findViewById(R.id.EditText01);
        lv.setAdapter(new ArrayAdapter(this,
        android.R.layout.simple_list_item_1, listview_array));
        int x= lv.getHeaderViewsCount ();
        System.out.println("x========"+x);
        lv.setAdapter(new ArrayAdapter
        (MainActivity.this,
        android.R.layout.simple_list_item_1, listview_array));
    
        et.addTextChangedListener(new TextWatcher()
        {
            public void afterTextChanged(Editable s)
            {
                // Abstract Method of TextWatcher Interface.
    
            }
            public void beforeTextChanged(CharSequence s,
            int start, int count, int after)
            {
    
                // Abstract Method of TextWatcher Interface.
    
            }
            public void onTextChanged(CharSequence s,
            int start, int before, int count)
            {
                textlength = et.getText().length();
                array_sort.clear();
                for (int i = 0; i < listview_array.length; i++)
                {
                    if (textlength <= listview_array[i].length())
                    {
    
                        String s2= et.getText().toString();
                        if(listview_array[i].toString().contains(et.getText().toString()))
                        {
                            array_sort.add(listview_array[i]);
                        }
    
    
                    }
                }
    
                lv.setAdapter(new ArrayAdapter
                (MainActivity.this,
                android.R.layout.simple_list_item_1, array_sort));
            }
        });
    
    }
     }
    

    For search in custom listview based on class item refer the link implement search on a custom listview. Modify it according to your needs.

提交回复
热议问题