Question

i have a listView which is filled with an arraylist of strings and i want to make it clickable .. but i cant recognize which item was clicked

i've made this but it doesn't work !

is there way to know the string clicked ? if not is there a way to know even the position of clicked item?

public class SearchResults extends Activity{

    public ArrayList<String> findMovieByName(String name) {
        ArrayList<movie> matches = new ArrayList<movie>();
        // go through list of members and compare name with given name
        for(movie movie : MovieReg_activity.movies) {
            if (movie.getName().contains(name)) {
                matches.add(movie); // adds matching member to the return list

            }
        }
        ArrayList<String> matchesNames = new ArrayList<String>();
            int x=0;
           for( movie movie : matches) {
          String name65 =  movie.getName();
            matchesNames.add(x,name65);
            x++ ;
                }

         return matchesNames; // return the matches, which is empty when no member with the given name was found
    }
            @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        ListView lv=(ListView)findViewById(R.id.listView1);
        TextView tv=(TextView)findViewById(R.id.textView1);


        Bundle bundle =getIntent().getExtras();
        if(bundle!=null){
        String searchbar =bundle.getString("search value");


         ArrayList<String> list =  findMovieByName(searchbar);
           int match_size=list.size();
           tv.setText("no of matches=" +match_size);



        ArrayAdapter<String> ad = new ArrayAdapter<String>(SearchResults.this, android.R.layout.simple_list_item_1, list);
        lv.setAdapter(ad);

        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View position , int arg2,
                    long arg3) {

                    if( position.equals(1) ){           
                        Toast.makeText(SearchResults.this,"1 chosen", Toast.LENGTH_LONG).show();
                    } else {
                        Toast.makeText(SearchResults.this,"nothing", Toast.LENGTH_LONG).show();

                    }           

            }
        });

        }
    }
    }
Was it helpful?

Solution

final ListView lv = (ListView) findViewById(R.id.yourListView);

lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> myAdapter, View myView, int myItemInt, long mylng) {
        String selectedFromList =(String) (lv.getItemAtPosition(myItemInt));

      }                 
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top