2009-05-21 32 views
7

我使用SimpleCursorAdapterCursor填充了ListActivity,該列表在單擊其中一個列表項時啓動另一個活動。我也使用ViewBinder來做一些自定義的數據轉換。用複選框點擊自定義列表

我想添加一個CheckBox到列表中的每一行,所以我已經改變了視圖並添加了一個CheckBox重力權。

添加CheckBox已刪除點擊項目的功能。當您按列表項目時,我在ListActivity中重寫的onListItemClick方法不再被調用。刪除CheckBox修復此問題。爲什麼是這樣?

此外,如何在列表項的主要部分被點擊時設置列表,以便繼續執行我所需的功能,但在檢查項目中的CheckBox時是否具有附加功能?將設置onCheckedChangedListener工作還是與列表中的每個項目重複使用相同的視圖實例?

回答

4

看起來像SimpleCursorAdapter對於我想達到的目標來說太簡陋了。 我已經切換到執行CursorAdapter並在我的newView方法的實現中使用LayoutInflater返回新視圖。

public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false); 
    } 

在bindView我選擇自定義OnClickListener我的主要LinearLayout,然後又OnCheckedChangeListenerCheckBox

對於這一切看的權利,我不得不設置LinearLayout的背景Android的菜單項繪製:

android:background="@android:drawable/menuitem_background" 
+0

你好你可以張貼這更多的代碼? – Maxrunner 2012-01-05 01:01:41

14

至於解釋here,如果沒有其他的看法是focusable點擊監聽器只適用。設置你的CheckBoxfocusable="false"應該做的伎倆:

<CheckBox android:focusable="false" /> 
相關問題