2012-01-16 170 views
0

我有一個活動,有一個按鈕和一個列表視圖(與chechbox,圖像和文本)。在哪裏執行onClickListener以及如何?

我從擴展BaseAdapter類的customAdapter類製作listview。

我正在處理該customAdapter類中的複選框。

現在我的問題是,如何知道被檢查哪些項目以及如何在

是檢查listItems.Because我的按鈕是在活動執行動作,但我需要perfom是onClickListener在customadapter類 ??

感謝您的幫助。

+0

所以你試圖記錄在列表中選中哪個複選框? – 2012-01-16 17:18:29

+0

是的,我正在尋找。以及在哪裏執行按鈕onClickListener以及如何? – 2012-01-16 17:22:05

回答

0

您會在您的GetView()方法內部放置Button click監聽器,在該方法中,您爲列表中的每一行膨脹視圖。

爲你會做same..it會是這個樣子你getview複選框項目()

CheckBox cbx = (CheckBox)view.findViewById(R.id.c_checkbox); 

    if(cbx.isChecked()){ 
     Toast.makeText(getApplicationContext(), 
       "Checked position " + position, 
       Toast.LENGTH_SHORT).show(); 
    } 
+0

如何在列表視圖中爲所有選中的項目執行onClickListener按鈕。例如從按鈕點擊列表中刪除所有選中的項目。 – 2012-01-16 17:34:24

+0

列表視圖中每行的按鈕?或者它只是一個按鈕? – 2012-01-16 17:36:23

+0

頂部有1個按鈕。 – 2012-01-16 17:36:49

0

你可以使用一個特製的OnItemClickListener實現OnClickListener

private class CustomAdapter extends BaseAdapter implements OnClickListener { 

    public MyAdapter() { 
     /* Your constructor */ 
    } 

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

     if (convertView == null) { 
      convertView = mInflater.inflate(R.layout.custom_row, null); 
     } 

     // take the CheckBox and set the listener. 
     CheckBox cbx = (CheckBox) convertView.findViewById(R.id.checkbox); 
     cbx.setOnClickListener(this); 

     // set the listener for the whole row. 
     convertView.setOnClickListener(new OnItemClickListener(position)); 
     return convertView; 
    } 

    @Override 
    public void onClick(View v) { 
     Log.v(TAG, "Row button clicked"); 
    } 
} 

private class OnItemClickListener implements OnClickListener{   
    private int mPosition; 

    OnItemClickListener(int position){ 
     mPosition = position; 
    } 

    @Override 
    public void onClick(View v) { 
     Log.v(TAG, "onItemClick at position" + mPosition);      
    }    
} 

}

還要注意,將作爲焦點的視圖列表項防止onListItemClick()點擊列表項時的射擊。

希望這會有所幫助。

相關問題