1

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

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

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

这是我的列表项的 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();
                         }});




                }
4

2 回答 2

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

}

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

于 2013-02-20T10:30:51.847 回答
0

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

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

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

于 2013-02-20T10:24:35.677 回答