在可点击的列表视图中单击了哪个项目

时间:2014-02-19 18:59:41

标签: android listview arraylist onitemclicklistener clickable

我有一个listView,里面装满了字符串的arraylist 我想让它可点击..但我无法识别哪个项目被点击

我做了这个,但它不起作用!

有没有办法知道点击的字符串? 如果不 有没有办法知道点击项目的位置?

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

                    }           

            }
        });

        }
    }
    }

1 个答案:

答案 0 :(得分:0)

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

      }                 
});