Android 我有一个带有复选框的Listview,单击复选框区域时布局的onClick事件不起作用
我有一个带有Android 我有一个带有复选框的Listview,单击复选框区域时布局的onClick事件不起作用,android,listview,onclicklistener,Android,Listview,Onclicklistener,我有一个带有文本框和复选框的列表视图 我已经使用视图持有者实现了列表视图,并选中了复选框 holder.getCheckbox().setEnabled(false); 并创建了复选框XML布局 <com.mobello.shift.widget.CustomTextView android:id="@+id/list_title" android:layout_width="0dp" android:layout_height="40dp" and
文本框和复选框的列表视图
我已经使用视图持有者实现了列表视图,并选中了复选框
holder.getCheckbox().setEnabled(false);
并创建了复选框XML布局
<com.mobello.shift.widget.CustomTextView
android:id="@+id/list_title"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingEnd="3dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:textColor="@color/black"
android:textSize="@dimen/dimen_text_size_14"
android:textStyle="normal"
app:typeface="@string/light" />
<CheckBox
android:id="@+id/chkbox_value"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:layout_marginEnd="15dp"
android:layout_marginRight="15dp"
android:button="@drawable/blue_check_box_bg"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="center" />
我不确定我是否理解你的意思,但我会尝试:
1)您需要在holder
或convertView
上设置onClickListener()
2)然后检查复选框的当前状态。
如果已选中,则将其设置为未选中,否则将其设置为选中 我不确定我是否理解您的意思,但我会尝试:
1)您需要在holder
或convertView
上设置onClickListener()
2)然后检查复选框的当前状态。
如果已选中,则将其设置为未选中,否则将其设置为选中 我们需要更多的代码!向我们展示onClick事件所在的代码以及如何创建项目listviewlayout@Muddz我更新了我的代码我们需要更多的代码!向我们展示onClick事件所在的代码以及如何创建项目listviewlayout@Muddz我更新了我的代码
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
try {
if (convertView == null) {
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.selection_row_view, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.getListTitle().setText(list.get(position).getTitle());
holder.getCheckbox().setChecked(list.get(position).isCheckBok());
holder.getCheckbox().setEnabled(false);
if(flagPosition == Constant.FLAG_FILTER_INDUSTRY){
holder.getListTitle().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// int pos = view.getId();
if (list.get(position).isCheckBok()) {
list.get(position).setCheckBok(false);
if (SelectionActivity.selectedNameList.size() > 0) {
SelectionActivity.selectedNameList.remove(list.get(position).getTitle());
SelectionActivity.selectedIdList.remove(list.get(position).getId());
}
} else {
list.get(position).setCheckBok(true);
SelectionActivity.selectedNameList.add(list.get(position).getTitle());
SelectionActivity.selectedIdList.add(list.get(position).getId());
}
notifyDataSetChanged();
}
});
}
} catch (Exception e) {
Helper.setErrorLog(context,e);
}
return convertView;
}