2011-09-27 46 views
0

我在我的程序中使用3個在java代碼中創建的列表視圖。我使用擴展實現onitemclicklistener的Activity。現在,如何分別爲每個listviwe製作不同的項目點擊事件? 任何幫助表示感謝,並提前感謝。如何使用多個列表項單擊擴展Activity實現onClicklistener

+0

你能詳細解釋一下嗎?與代碼..? – Ronnie

+0

當然。看到我的代碼在這個鏈接:http://pastebin.com/fGV10fh5 –

回答

1
public void onItemClick(AdapterView<?> adapter, View view, int index, long id) 
{ 
    switch(view.getId()) 
    { 
     case <listview1 Id> : //call method 1; break; 

     case <listview2 Id> : //call method 2; break; 

     case <listview3 Id> : //call method 3; break; 

    } 
} 

這是一個糟糕的method.You應該實現不同類listeners.So可以模塊化代碼。

+0

任何示例代碼作爲鏈接? –

+0

我創建所有列表視圖動態(即)沒有ID。那麼如何實施? –

+0

hey @PattabiRaman,你可以在創建視圖時使用setTag(int key,Object tag),在檢查視圖時使用getTag(int key)。 – dinidu

0

不要在Activity中實現OnItemClickListener,而應使用單獨的類,例如匿名類。

或者使用單個偵聽器,並通過callback method中的view參數檢測事件的來源。

0

如果你看到

onItemClick(AdapterView<?> parent, View view, int position, long id) 

它有父適配器視圖。因此您可以檢查點擊哪個適配器視圖。

我個人覺得不要在這種類型的實例上實現onItemClickListner。

使用setOnItemClickListener(listener1)...等等這3個listViews。它更好。

您可以爲每個listView編寫單獨的偵聽器。

HTH。

0

您需要爲每個ListView創建一個新的onItemClickLIstener。

你這樣做是這樣的:

listView1.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, int index, long id) { 

     } 
    }); 
相關問題