2012-02-07 42 views
0

我只是有关于更改活动布局的问题。在Android中更改活动setContentView()

Basicly我的问题是:

我有填充了一系列的字符串列表视图。 我有一个OnItemClick事件分配给ListView,

当用户点击列表视图中的一个项目时,我希望当前布局消失并且图像取代它。

从阅读其他文章,我明白推荐的方法是为ListView中的每个项目设置一个单独的活动,但是,看起来所有活动正在显示的图像我认为这将是一种浪费的努力为ListView中的每个项目设置单独的活动...

任何人都可以给我一些帮助吗?

感谢提前。

+1

您可以创建一个活动,根据列表视图选择显示相应的图像。只需将第一个活动的列表视图选择传递给第二个活动并显示相应的图像。 – bschultz 2012-02-07 16:09:08

回答

5

你真的应该创建一个新的活动(AR新的片段,如果你有空间,但这是另外一个问题),其显示图像,至少有以下原因

  1. 编码和维护这样的解决方案非常非常简单。如果明天你想添加2个按钮和一些文本,也许该图像的菜单呢?你有你的全新活动来编辑和升级,而不会冒着损坏你的列表活动的风险。

  2. 它更加用户友好。如果用户在显示图像时,用2个活动推回他会回来的名单,您的解决方案,他将返回列表之前,这是不是他会espect

记这条建议:1活动= 1简单的任务或与用户的交互。

列表+图像显示= 2个活动(或片段)

PS:你不需要定义每个列表项不同的活性,只是意图传递给“ImageActivity”,并指定有哪个图像以显示!编辑2:传递到下一个活动您当前的选择,只需使用Intent类的putExtra(String key,T value)(T可能会有所不同,检查文档)方法。 示例:intent.putExtra(“imgCodeSelected”,index)其中index由onItemClick事件获取。只要有不同的密钥,您可以随意放置尽可能多的演员。

+0

谢谢你,很好的答案,已经明确地澄清了一些事情,但还有一个问题,我如何将ListView选择传递给新的活动? – Shaw 2012-02-07 23:07:05

+0

这是我的OnClickEvent ...私人OnItemClickListener ImageClickListener =新OnItemClickListener(){ \t \t @覆盖 \t \t公共无效onItemClick(适配器视图 AV,视图V,INT指数,长ARG3){ 如果(指数== 0){ \t意向意图=新Intent(v.getContext(),ImageActivity.class); \t startActivityForResult(intent,0); \t } – Shaw 2012-02-07 23:12:33

+0

我已经在我的EDIT2段中回答了你。一探究竟。 – 2012-02-08 07:58:50