2013-07-24 205 views
0

我的ListView自定義SimpleCursorAdapter的活動:ListView的點擊監聽器不工作

public class MyListActivity extends Activity { ... } 

mCursorAdapter = new MyCursorAdapter(mContext, 
    R.layout.listview_item01, mCursor, from, to); 
mainLayout = (RelativeLayout) findViewById(R.id.main_layout); 

mListView = new ListView(mContext); 
mListView.setAdapter(mCursorAdapter); 
mListView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View view, 
      int position, long arg3) { 
      Toast.makeText(getApplicationContext(), 
       "You Selected Item " + Integer.toString(position), 
       Toast.LENGTH_LONG).show(); 
      Log.v("onItemClick", "CLICK!"); 
    } 
}); 
mainLayout.addView(mListView); 

我簡單的適配器:

private class MyCursorAdapter extends SimpleCursorAdapter { 

    public MyCursorAdapter(Context context, int layout, Cursor c, 
      String[] from, int[] to) { 
      super(context, layout, c, from, to); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
      View view = super.getView(position, convertView, parent); 
      if (position % 2 == 0) { 
       view.setBackgroundColor(Color.rgb(238, 233, 233)); 
      } else { 
       view.setBackgroundColor(Color.rgb(255, 255, 255)); 
      } 
      return view; 
    } 
} 

我的列表視圖項:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 
    <RadioButton 
     android:id="@+id/item_radiobutton01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" /> 
    <TextView 
     android:id="@+id/item_textview01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/item_radiobutton01" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_toLeftOf="@+id/item_radiobutton01" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
</RelativeLayout> 

我看到:

enter image description here

我的ListView看起來不錯,但如果我點擊任何項目所以沒有什麼happines。爲什麼?請幫助我

回答

3

我認爲這是因爲您的佈局項目。嘗試使用這些禁用它們的可點擊:

android:focusable="false" 
    android:focusableInTouchMode="false" 

我認爲當你點擊一個項目你不實際點擊該行,但你點擊TextViewor的單選按鈕;你也可以通過爲它們編寫事件處理程序來檢查它,並在這些事件處理程序中放入一個Log。

欲瞭解更多有關這些房產的信息,請在android開發人員網站查看this document

+0

由於Leo未爲'TextView'定義'OnClickListener',因此Click事件將由'ListView's'' OnItemClickListener'處理。 – Vikram