2012-02-07 43 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