Mursid
Mursid

Reputation: 35

Search functionality in listview

I'm having some problems with adding a Search functionality to my ListView.I want to make it so a user can search through a ListView clickable desirable items. I have already created a search ListView without the clickable implementation. I have tried adding a search using an EditText and a TextChangedListener. This works fine for a normal ListView but when i click a item of listview nothing happen..i knwo that i have to add intent for each row in listview (e.g ferrari) but how can i impletement intent ? any ideas

public class Main extends Activity {

private ListView lv;


ArrayAdapter<String> adapter;


EditText inputSearch;


ArrayList<HashMap<String, String>> modelist;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    String modeller[] = {"Ferrari","Renault","Porche",};

    lv = (ListView) findViewById(R.id.list_view);
    inputSearch = (EditText) findViewById(R.id.inputSearch);

    adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.model_ismi, modeller);
    lv.setAdapter(adapter);

    inputSearch.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {

            Main.this.adapter.getFilter().filter(cs);
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                int arg3) {


        }

        @Override
        public void afterTextChanged(Editable arg0) {

        }
    });
}

Upvotes: 0

Views: 230

Answers (1)

Pratik Sharma
Pratik Sharma

Reputation: 13415

Try this :

lv.setOnItemClickListener(new OnItemClickListener(){ 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,int position, long _id){
                switch(position){
                    case 0: // "Ferrari"
                        Intent intent_ferrari=new Intent(Main .this,Ferrari.class);
                        startActivity(intent_ferrari);
                        break;
                    case 1: // "Renault"
                        break;
                    case 2: // "Porche"
                        break;
                    default:
                        break;
                }
            }
});

Upvotes: 1

Related Questions