2011-08-16 32 views
15

我已經在arrayadapter中添加了arraylist,其中包含的對象每個都包含兩個元素/項目,我已經成功爲setListAdapter設置了該適配器,現在我想要在listview的setOnItemClickListener中獲取這些項目。如何從Android中的setOnItemClickListener中的ListView中獲取對象?

這裏是我的代碼

TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets);  
    setListAdapter(adaptor); 
    ListView lv = getListView(); 
    lv.setTextFilterEnabled(true); 
    lv.setOnItemClickListener(new OnItemClickListener() 
    { 
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    { 
    //here i want to get the items    
    } 
}); 

回答

6
public void onItemClick(AdapterView<?> parent, View view,int position, long id){ 
    something = tweets[position]; 
} 
+0

顯然這是唯一的解決方案 –

2

你想要得到的項目,與他們無關呢?

例如,您可以製作Toast這樣的消息。

public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    { 
     Toast.makeText(getApplicationContext(), tweets[position], Toast.LENGTH_SHORT).show(); 

    } 

希望這會有所幫助。

48
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    int color = parent.getAdapter().getItem(position); 
} 
+0

謝謝。它對我非常有幫助。 – Ark

+0

最正確的答案 –

+0

太棒了,這就是答案 – Ramon

-2

getListView().getItemAtPosition(position)會在你TweetListAdaptor

2

返回Object,如果你有列表視圖願與所有提交的數據,並希望得到一個客體只能使用一個值:

ViewGroup row = (ViewGroup) listprod.getChildAt(0); 
TextView tvTest = (TextView) row.findViewById(R.id.textnomprod); 

在哪裏我的列表視圖是「listprod」,我想要得到的值在,其中textnomprod是我的客體和IM節省我的變量tvTest

0
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> adapter, View view, int position, long id) { 
     Windows clickedObject = adapter.get(position); 
    } 
} 

考慮在上面的例子中,在ListView被命名爲的Windows使用

  • 對象,
  • 的對象在列表視圖中點擊的項目被命名爲clickedObject,
  • 所使用的數組列表被稱爲適配器

此外,請確保在您的ArrayList前加最後

0

我通過使用其設置的適配器解決了此問題。

TweetListAdaptor adaptor = new TweetListAdaptor(this,R.layout.list_item, tweets);  
setListAdapter(adaptor); 
ListView lv = getListView(); 
lv.setTextFilterEnabled(true); 
lv.setOnItemClickListener(new OnItemClickListener() 
{ 
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) 
    {  
     //here i want to get the items 
     adaptor.getItem(position); // this is your object 
    } 
}); 

請記住,適配器必須初始化並設置爲ListView。

以這種方式,你可以訪問你想要的對象的屬性。

相關問題