从android列表中的多个ID列表项中获取id值

时间:2013-02-20 10:18:35

标签: android list

我正在尝试在单击列表中的项目时检索某个ID。

如何检索值+ id / name?我想在下面显示的警告对话框中使用它。

我目前正在使用一个简单的吐司,只是在点击列表项时显示“名称”

以下是我的列表项的xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content">

<TextView
  android:id="@+id/text"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_toLeftOf="@+id/image" android:textSize="20dip"   
      android:layout_marginLeft="10dip"/>

<ImageView
  android:id="@+id/image"
  android:layout_width="50dip"
  android:layout_height="50dip"
  android:layout_centerHorizontal="true"
  android:src="@drawable/stub" android:scaleType="centerCrop"/>

<TextView
  android:id="@+id/name"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_toRightOf="@+id/image"
  android:textSize="20dip" android:layout_marginLeft="10dip"/>

</RelativeLayout>

警报对话框代码:

list.setOnItemClickListener(new OnItemClickListener(){

                    String artistname = "get +id/name here";
                    String items[] = {"Youtube", "Soundcloud"};
                         @Override
                         public void onItemClick(AdapterView<?> parent, View view,
                                 int position, long id) {

                             AlertDialog.Builder builder = new 
                                     AlertDialog.Builder(JsonActivity.this);

                             builder.setTitle(artistname);
                             builder.setItems(items, new   
                                     DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int which) {

                             }
                             });

                             AlertDialog alert = builder.create();
                             alert.show();
                         }});




                }

2 个答案:

答案 0 :(得分:2)

试试这个

 public void onItemClick(AdapterView<?> parent, View view,
                                 int position, long id) {
//name of the artist...
String name=((TextView)view.findViewById(R.id.name)).getText();

}

我认为这就是你想要的......我希望这会对你有所帮助

答案 1 :(得分:0)

当我们使用Adapter显示列表时。 在getView方法中,我们根据列表中item的位置从集合中获取值。我正在谈论的适配器的数据源。 像这样。

public View getView(){
   holder.name.setText(data.get(position));
}

单击列表项后,您将获得使用listItemOnClickListener单击的位置。在那次回调中 再次调用数据源的get方法以获取粘贴在列表项上的元素。 希望你明白这一点。因为我没有发布太多代码来支持它。