Detecting Which item was Selected From a ListView

2019-07-27 06:59发布

问题:

I am trying to get the title of the song that was selected from my listview but I'm getting a forced close. Any ideas?

    ArrayList<String>songtitle = new ArrayList<String>();

    //This is how i popluated sontitle//
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.song,songtitle);
    setListAdapter(adapter);

 protected void onListIemClick(ListView  , View v, int position, long id){
       super.onListItemClick(c, v, position, id);
        Object o = this.getListAdapter().getItem(position);
    String pen = o.toString();
        Toast.makeText(this, "You have chosen the color: " + " " + songtitle, Toast.LENGTH_LONG).show();

回答1:

 protected void onListIemClick(ListView  , View v, int position, long id){
     Toast.makeText(this, "You have chosen the color: " + songtitle.get(position), Toast.LENGTH_LONG).show();
}

try this.



回答2:

selection is not being updated here, it should be computed based on the position. You probably want to something like this:

    ((TextView)v).setText(text);

Also, it looks like songTitle is a list. You should probably rename that to songTitles to begin with. Check that the position is within the bounds of your list. What kind of error are you getting?