2013-04-02 67 views
5

我爲我的android應用程序製作了一個自定義listView,並且爲該項目的單獨部分創建單獨的onClickListeners時出現問題。 我的物品有圖片和文字。我想要的是根據哪些被點擊而開始不同的活動。如何爲onClickListener設置自定義listView項目的單獨部分? [Android]

onClick()方法應該啓動一個活動,這使得我無法在我的DataBinder類的getView()方法中定義活動。 (DataBinder infalate我的listView自定義佈局)

任何幫助嗎?

謝謝!

回答

9

在您的自定義ListAdapter'sgetView方法中,您應該將onClickListeners添加到您想要單擊的不同子視圖中。

上如何實現getView方法的一個例子:

class CustomListAdapter extends ArrayAdapter<String> implements OnClickListener { 

    public CustomListAdapter(Context context, int textViewResourceId) { 
     super(context, textViewResourceId); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View v = convertView; 

     TextView tv = (TextView) v.findViewById(R.id.textView1); 
     tv.setOnClickListener(this); 

     ImageView iv = (ImageView) v.findViewById(R.id.imageView1); 
     iv.setOnClickListener(this); 

     return super.getView(position, convertView, parent); 
    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
     case R.id.textView1: 
      // Do stuff accordingly... 
      break; 
     case R.id.imageView1: 
      // Do stuff when imageView1 is clicked... 
     default: 
      break; 
     } 
    } 
} 
+0

我會盡力回覆一些反饋:) –

+0

這一個工作:) –

1

在列表項中爲ImageViewTextView定義單獨的onClick()方法並非不可能。這正是你必須做的,而不是爲你的ListView使用onClick()處理程序。

在適配器的getView()中爲每個項目實施onClick()方法。

0

一種選擇是,以包括單獨的元件一個onClick方法。假設您已經使用XML構建自定義行,在onClick字段中添加方法很簡單,可以設置該元素(如圖像)以允許點擊(如果尚未),並在類中定義該方法。然後,如果點擊了,listview點擊處理程序會觸發,但是如果元素被點擊(圖像),那麼它自己的onClick方法會被觸發。

相關問題