【发布时间】:2013-09-25 14:31:56
【问题描述】:
在我的(第一个)Android 应用程序中,我有一个项目列表。每个项目都使用 item.xml 显示,其中我有一个 RelativeLayout。在这个布局中,我定义了android:onClick="showItemDetails",其中的方法如下所示:
public void showItemDetails(View view) {
Intent intent = new Intent(this, itemDetails.class);
intent.putExtra("itemId", "5");
this.startActivity(intent);
}
正如你所看到的,我传递了一个硬编码的 id,所以无论你当前点击什么项目,它显然只显示项目 nr 5。我现在需要动态地为这个方法提供 id。 itemlist 是在 ItemListAdapter 类中创建的,其中一部分是这样的:
holder.description.setText(rowItem.eventDescription);
holder.amount.setText(rowItem.getDisplayAmount());
我在rowItem.id 下也有 ID,但我有点不知道该怎么处理它。
这里有人可以帮帮我吗?我需要做什么才能让列表项正确地将 id 传递给 itemDetails 类?欢迎所有提示!
【问题讨论】:
-
不要使用
android:onClick(View.OnClickListener实现) ...改用ListView/AdapterView.OnItemClickListener实现 + 覆盖适配器的getItemId并返回rowItemsss.get(position).id然后在AdapterView.OnItemClickListener.onItemClick(...)实现中你会得到你在idarg 中的ID -
@Selvin:这是一个答案,不是评论
-
@gunar 如您所见,写出好的答案需要时间:)
-
@kramer65 检查我的答案中的“或:”代码
标签: java android argument-passing