2013-07-24 206 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