2011-04-19 82 views
0

我正在編寫一個應用程序,並且遇到了問題。 第一項活動有許多選項的列表,每個列表對象由圖片和一些文本組成。目標是用戶選擇一個列表選項,並打開一個新的活動。 我有一個包含圖像,文本和需要啓動的活動名稱的類的實例的數組列表。當我在我的onListItemClick()中調用StartActivity時,如何獲取新Intent中的活動名稱並使其接受名稱?這是可能的還是這是一個可怕的方式去我想要的? 我對android非常陌生,對於任何混淆抱歉。 任何幫助非常感謝。從Android中的列表開始活動

回答

1

爲什麼不讓自定義列表類包含圖像,文本和活動的名稱還有另一個字段是您想要啓動的活動的類對象的實例?這樣,您可以使用它來啓動新的活動。

+0

我喜歡這個,但有幾個問題。首先,我如何將它連接到點擊監聽器?第二,如果我已經有了它的一個實例,我甚至會需要該活動的名稱字段嗎? – Foxvog 2011-04-19 02:20:10

+0

startActivity(new Intent(this,yourCustomObject.getActivityClass()); – 2011-04-19 16:24:23

+0

如果帶有名稱的字段純粹用於讓您的新Activity運行,那麼我會說您可以刪除它,但如果名稱正在在列表中某個地方呈現,那麼你可能想要保留它,這真的取決於你。 – 2011-04-19 16:25:56

0

另一個比創建自定義類更容易的解決方案...創建一個包含ListView對象和您想要啓動的Activity的Hashmap。

public static final HashMap<Object, Class> map = new HashMap<Object, Class>(); 
    static { 
     map.put(key0, Activity0.class); 
     map.put(key1, Activity1.class); 
     map.put(key2, Activity2.class); 
    } 


@Override 
    protected void onListItemClick(ListView lv, View v, int position, long id) { 

     startActivity(new Intent(this, map.get(lv.getItemAtPosition(position)); 

    } 

顯然,HashMap定義中的對象將需要更改爲您正在關閉的對象。