2013-07-10 29 views
0

我有一個列表視圖,包含不同種類的單元格,我使用ArrayAdapter來完成此操作。ListView:如何在點擊後更改單元格?

private class MyAdapter extends ArrayAdapter<String> 
{ 
    public MyAdapter(Context context, int resource, int textViewResourceId, String[] objects) 
    { 
     super(context, resource, textViewResourceId, objects); 
    } 

    @Override 
    public View getView(int position, View view, ViewGroup parent) 
    { 
     View viewCE = inflater.inflate(R.layout.my_cell, parent, false); 
     ((TextView) viewCE.findViewById(R.id.txt_cell)).setText(adapter.getItem(position)); 
     view = viewCE; 
     return view; 
    } 
} 

my_cell包含一個ImageView的,和我想要做的是,當用戶點擊該小區改變這個ImageView的形象。

我已經加入到我的代碼實現OnItemClickListener私人類及其方法onItemClick()但當時我已經完全不知道該怎麼做......

感謝您的幫助。

+0

把完整的代碼。我無法在您的適配器中看到任何圖像視圖。 –

+0

這是因爲當我創建我的視圖時,使用的圖像總是相同的,所以我將其定義在XML文件中,而不是在適配器中。 – Rob

回答

2

,參數view是正是包含您imageView,這樣你就可以通過ID找到它,然後改變它的觀點,樣本代碼如下:

list.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
     int position, long id) { 
     ImageView image = ((ImageView) viewCE.findViewById(R.id.your_image_id)); 
     //do something by yourself 
    } 
} 
+0

什麼是「CE」視圖? – Fattie

0

如果你想比列表項的onclick處理不同的ImageView的單擊事件,您可以添加一個單獨的onClickListener到ImageView的象下面這樣:

onItemCLick回調
imageView.setOnClickListener(new OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      // Change the image 

     } 

    }); 
相關問題