Detecting Which item was Selected From a ListView

2019-07-27 07:05发布

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

2条回答
家丑人穷心不美
2楼-- · 2019-07-27 07:26

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?

查看更多
三岁会撩人
3楼-- · 2019-07-27 07:40
 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.

查看更多
登录 后发表回答