我从事电子商务应用程序已经有一段时间了,现在我有了一个显示产品列表的ListView --每个产品=1个ImageView和一些TextViews。
我在该ListView上设置了一个onItemClick侦听器,当我单击该listView产品之一时,我希望发生的事件是,启动i新活动'ProductDetails‘,该活动显示有关我所单击的产品的更多信息。
我已经在其他地方问过这个问题,但我没有得到明确的答案,他们说我必须创建一个新的'list\details‘项目,但现在不能发生这种情况,因为我已经在那个项目上工作了大约20天,不能从头开始。
发布于 2013-04-21 07:44:47
您不能将TextView
或ImageView
从Activity
发送到Activity
。你可以发送的是它的内容。因此,例如,如果您想要传递来自TextView
的信息,您将需要传递显示在那里的源String
(或者从TextView
中提取String
),您可以通过将Bundle
从调用的Activity
传递到被调用的Extra
或简单地将其作为Extra
来实现
intent.putExtra("string name", value);
在下面的Activity
中,您将获得以下数据:
Intent intent = getIntent();
bundle = intent.getExtras();
bundle.getString("string name");
然后,在下面的Activity
中,使用传递的String
创建一个TextView
。通过传递ImageView
的路径,也可以用同样的方式处理它。
发布于 2013-04-21 07:58:35
对不起,我已经发布了一个答案,但只是一个链接到另一个网站,所以它被删除了:-(
在这里,我再次提出了可能的解决方案:
在第一个活动中,您需要使用intent.putExtra(...)
,并在使用intent.getExtra(...)
的第二个活动中检索数据。
示例练习1:
i.putExtra("title01", yourDataCollection.get(position).get(KEY_TITLE01));
练习2:
this.title01 = i.getStringExtra("title01");
这里有一个完整的项目:http://www.codeproject.com/Articles/507651/Customized-Android-ListView-with-Image-and-Text
发布于 2013-04-21 15:23:25
Android使用intent来允许Activity
s进行交互。如果您想要显示产品详细信息,您可能有一个描述产品的Class
,并用它保存的信息填充您的ListView
。如果您允许class Product implements Serializable
,则可以使用Intent.putExtra(String name, Serializable obj)在Activity
之间传递产品说明。在ProductDetailsActivity
中,您可以使用:
getIntent(). getSerializableExtra (String name)
要检索放在为启动ProductDetailsActivity
而创建的意图中的可序列化文件
https://stackoverflow.com/questions/16124145
复制相似问题