Search in android custom listview

16 Views Asked by At

I have a arraye of letters (for testing), when searching for each letter in the list, it only shows the letter A And when I search for the letter A, it shows the letters A and B And if I search for a letter outside the arraye, nothing is displayed.

This is my code

    public class nmd extends Activity 
{ListView lstview;
EditText etSearch;
    CustomList adapter; 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nmdlist);
        lstview=(ListView)findViewById(R.id.nmdlistListView1);
        
        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

        int width = displayMetrics.widthPixels;

        etSearch=(EditText)findViewById(R.id.searchView);
String[] arr={"a","b","d","e","f","g","h","i","j","ak"};
adapter = new CustomList(nmd.this, arr,width); 
        lstview.setAdapter(adapter);
    lstview.setOnItemClickListener(new OnItemClickListener(){
                public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        {
            String selected=((TextView)view.findViewById(R.id.lstitemsTextView1)).getText().toString();
            
            try{readjason r=new readjason();
        Intent j=new Intent(nmd.this,nmdinfo.class);
                
            j.putExtra("name",selected);
            j.putExtra("id",r.readFromFile(getApplicationContext(),selected));  
                startActivity(j);
                }catch(Exception e){
            }
        }
});
    

etSearch.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence cs, int start, int before,
                                      int count) {
                String text =etSearch.getText().toString().toLowerCase(Locale.getDefault());
                adapter.getFilter().filter(text);


            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                                          int after) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub

            }
        });
}

     **Thanks for your help**
0

There are 0 best solutions below