【问题标题】:ListView and Activity share dataListView 和 Activity 共享数据
【发布时间】:2011-11-09 13:52:26
【问题描述】:

场景是我有一个 ListView 显示餐厅列表及其地址。

我有一个 Activity,它显示两个地理点之间的距离(用户和餐厅),还有很多关于餐厅的信息和一个按钮,当点击它时会显示用户位置的路线到地图上的餐厅。

问题:当用户单击 ListView 项目时,我想启动一个 Activity,该 Activity 将显示对应的餐厅信息。

当用户单击 ID-0 (ListView 中的第一项) 时,为了更清楚地说明,它应该显示该特定项目的结果。

如何做到这一点?

【问题讨论】:

  • 用户点击ID-0(ListView中的第一项)会显示什么结果。是两个地理点(用户和餐厅)之间的距离吗?
  • 你可能正在寻找这个setOnItemClickListener
  • ID-0是listview的索引值
  • 取决于您如何填充 ListView 以及存储数据的位置。例如,如果您将其保留在 Application 类中,则可以使用 Yashwanth 的答案将索引传递给下一个活动。如果 ListView 的适配器拥有数据,则可以将所有数据放入 extras 中(如果数据很多,可能会很慢),如果您使用内容提供者,则可以传递新活动的 id 进行查询。
  • 当用户单击第一个列表视图项目(即 ID-0)时,我不会将数据存储在任何我想要的地方距离数组(在另一个类中计算)。现在 0 从 listview 传递,并且该项目的对应距离存储在数组 [0] 中。现在应该显示这个 a[0]。你能告诉我如何从列表视图中传递这个索引(ID)并在另一个活动中获取这个索引或 ID。

标签: android listview android-activity


【解决方案1】:

当用户点击 listView 项目时..您需要将点击的餐厅的信息传递给新活动..您可以通过 putExtraIntent 执行此操作。您必须在 onItemClick 中为 listView 执行此操作。 onItemClick 返回点击的位置,可能是你需要额外传递的..

Intent newIntent = new Intent(Myactivity.this, NewActivityClass.class);
newIntent.putExtra("clickedId", position);
startActivity(newIntent);

【讨论】:

  • @Yashwanth Kumar 感谢您的回答。请告诉我如何在另一个活动中获得职位。??
  • 使用 int position = getIntent().getIntExtra("clickedId", -1); , 没有 clikedId 时默认为 -1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多