核心代码:
// ListView的单击事件
imgListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// 加载图片预览
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 2;
bitmap = BitmapFactory.decodeFile(pathsList.get(arg2), options);
preImage.setImageBitmap(bitmap);
// String msg = "";
// for (int i = 0; i < isSelected.size(); i++) {
// if (isSelected.get(i) == true) {
// msg = msg + pathsList.get(i) + "第" + i + "张" + "\n";
// }
// }
//
// ShowMsg.showToast(getApplicationContext(), handler, msg);
/******* 直接点击ListView设置checkbox ********/
// ViewHolder vHollder = (ViewHolder) arg1.getTag();
// 在每次获取点击的item时将对于的checkbox状态改变,同时修改map的值。
// vHollder.checkBox.toggle();// 反转当前视图的选中状态
// 点击预览
// String text = "";
// String select_id = "";
// if (vHollder.checkBox.isChecked() == true) {
// isSelect[arg2] = true;
//
// } else {
// isSelect[arg2] = false;
// }
//
// for (int i = 0; i < isSelect.length; i++) {
// if (isSelect[i]) { // 如果该选项被选中
// text = text + pathsList.get(i) + "第" + i + "张" + "\n";
// select_id = select_id + i + ";";
// Toast.makeText(getApplicationContext(),
// "选中了:\n" + text, 5000).show();
// }
// }
// hasSelect = select_id;
// ListPicAdapter.isSelected.put(arg2, vHollder.checkBox
// .isChecked());
}
});
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// convertView为null的时候初始化convertView。
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listphoto, null);
holder.filename = (TextView) convertView
.findViewById(R.id.filename);
holder.imageView = (ImageView) convertView.findViewById(R.id.image);
holder.checkBox = (CheckBox) convertView.findViewById(R.id.cb);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.filename.setText(SDCard.getName(imgPaths.get(position)));
holder.imageView.setImageBitmap(photos.get(position).getBitmap());
holder.checkBox.setChecked(isSelected.get(position));
final CheckBox checkBox = holder.checkBox;
final int arg2 = position;
checkBox.setChecked(isSelected.get(position));
checkBox.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 记录CheckBox的状态
if (isSelected.get(arg2)) {
isSelected.put(arg2, false);
} else {
isSelected.put(arg2, true);
}
notifyDataSetChanged();
}
});
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
}
});
return convertView;
}
分享到:
相关推荐
原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。 解决方案:设置checkbox的android:focusable="false" 2、选择其中的checkbox,当滚动ListView的时候,会出现一些Checkbox选择错位的现象, ...
本话题主要探讨如何在ListView中集成EditText和CheckBox,以实现更具交互性的功能。 1. **ListView基础**: - ListView是一个可滚动的视图,通常用于显示一组项目,每个项目由一个View或一个ViewGroup表示。 - 它...
ListView和CheckBox结合_以及CheckBox设置点击事件的效率问题 其中实现的功能是: 1.选择一个条目后,回到第二个界面,条目内容要在第一个界面展示 2.CheckBox的条目被选中后,下拉时其它条目也有被选中问题 3.当...
在实际的应用场景中,我们经常需要在ListView中添加可选的复选框(CheckBox)列,以便用户能够选择一个或多个项目。本文将详细探讨如何在WPF的ListView中实现这一功能。 首先,我们需要理解WPF中的数据绑定机制。在...
总之,通过监听ListView的`ItemClick`事件并在事件处理函数中进行适当的逻辑控制,我们可以在Delphi7的ListView控件中启用复选框并实现单选功能。这不仅适用于基本的列表展示,还可以应用于各种复杂的业务场景,为...
记得在布局文件中为ListView指定适配器的布局,通常是一个包含TextView和CheckBox的布局。 总结起来,实现ListView中CheckBox复选框功能主要涉及以下步骤: 1. 创建自定义的ListView适配器,继承自BaseAdapter。 2...
可以创建一个HashMap来存储每个ListView项的ID和对应的CheckBox状态。在刷新或加载后,根据HashMap恢复CheckBox的状态,确保新加载的数据依然能反映出用户的先前选择。 六、代码实践 在具体实现中,可以创建一个...
### 如何使用LISTVIEW虚拟模式和Checkbox #### 一、使用虚拟模式 ##### 1. 在使用之前进行设置 为了启用虚拟模式,我们有两种方法来设置`ListView`控件: - **通过属性设置**:在控件的属性窗口中找到“行为”...
总结来说,解决ListView复用checkBox的问题,关键在于适当地在`getView()`方法中设置checkBox的状态,并且在点击事件中更新数据源和选中计数。这样,即使视图被复用,也能确保每个checkBox的状态正确反映其对应的...
在具体的代码实现中,可能还需要对ListView的Adapter进行一些调整,确保每个Item的布局中,CheckBox的clickable和focusable属性都设置为true,以便它们能够响应用户的触摸事件。 在提供的"PhoneInteceptor_v2"文件...
`getView()` 方法中,我们设置了Checkbox的文本和初始选中状态,并添加了一个CheckedChangeListener,当Checkbox的状态改变时,会触发这个监听器,更新对应位置的选中状态。 接下来,你需要在布局文件(如 `list_...
这个类可能包括了对状态更新和事件处理的优化,确保在ListView滑动时能正确处理CheckBox的选中状态。 总结来说,解决ListView嵌套CheckBox滑动时的选中状态错乱问题,需要深入理解ListView的工作机制,合理利用...
综上所述,通过自定义ListView的列表项布局,复写数据适配器,处理Checkbox的点击事件,以及实现双向选择功能,我们就能在Android应用中实现“listview+checkbox”的多选效果。这样的设计不仅让用户能够方便地选择多...
同时,为了实现双向绑定,我们还需要在ViewModel中添加一个命令,用于响应ListView的主CheckBox的点击事件,更新IsAllSelected的值: ```csharp private RelayCommand _selectAllCommand; public RelayCommand ...
在C#编程中,ListView控件是一个常用的组件,用于显示数据列表。当我们在ListView中添加了CheckBox复选框功能时,可能需要获取被选中的项的...以上步骤可以帮助开发者实现对ListView中CheckBox操作的响应和数据处理。
"ListView带CheckBox"的主题,主要涉及如何在ListView的每个列表项中集成CheckBox,并处理滑动过程中可能出现的选中状态错乱问题,以及实现全选、反选等高级功能。下面将详细介绍这些关键知识点。 1. **自定义...
通过以上步骤,我们可以实现ListView中CheckBox的选中状态管理和选中项记录。这不仅提高了用户体验,也为开发复杂的业务逻辑提供了基础。在实际项目中,可能还需要考虑多线程同步、异常处理等细节,以保证程序的稳定...
然而,添加 CheckBox 到 ListView 中并不是一件简单的事情,因为它需要解决事件冲突和复用错误的问题。 在本文中,我们将实现一个完美的 ListView 中添加 CheckBox 的解决方案。这个解决方案可以将 ListView 子项中...
主要是解决主要是解决我以前的一篇博客仿微信添加群聊界面——addView里listview和checkbox混乱的问题,详细请看我的博客http://blog.csdn.net/jiang89125/article/details/50379364
创建一个静态内部类ViewHolder,包含CheckBox等需要的View,然后在getView()方法中通过ViewHolder获取CheckBox,确保每次都能正确找到对应的View。 ```java static class ViewHolder { CheckBox checkBox; } @...