【发布时间】:2012-01-14 20:47:33
【问题描述】:
我有ListView 和自定义Adapter,它以这种方式将View 提供给ListView:
public View getView(int position, View convertView, ViewGroup parent)
{
RelativeLayout.LayoutParams lineParams;
RelativeLayout line=new RelativeLayout(context);
TextView tv=new TextView(context);
tv.setText("Text in postion="+i);
lineParams=new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lineParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
line.addView(tv, lineParams);
lineParams.addRule(RelativeLayout.CENTER_IN_PARENT);
//checkbox
CheckBox checkBox=new CheckBox(context);
lineParams=new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lineParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
lineParams.addRule(RelativeLayout.CENTER_IN_PARENT);
line.addView(checkBox, lineParams);
return line;
}
在ListView 内部的某个地方有setOnItemClickListener(),它应该拦截项目点击事件。我的问题是,每当我尝试将复选框添加到项目时 - 我的ListView 没有任何回应。如果我跳过CheckBox 或任何其他Button 它可以工作。
我真的被这个问题困住了,我尝试了各种布局,对齐,换行等等 - 没用。看起来CheckBox 干扰了ListView 项目点击事件。
任何想法如何克服?
【问题讨论】:
标签: android listview button adapter onitemclicklistener