如何为ListView中的TextView添加点击显示的对勾图片并实现提交跳转
实现步骤
1. 定义数据实体类
用来存储每个列表项的文本和选中状态,示例代码:
public class OptionItem { private String content; private boolean isSelected; // 构造方法、getter、setter自行补充 }
2. 实现ListView适配器
在getView方法中根据选中状态动态控制TextView的对勾显示,同时处理点击事件实现单选逻辑:
- 每次点击某个项时,将所有项的选中状态重置为false,再把当前点击项设为true
- 调用
notifyDataSetChanged()刷新列表 - 对勾可以直接通过
TextView的内置复合Drawable实现,不需要额外添加ImageView控件,示例核心代码:
@Override public View getView(int position, View convertView, ViewGroup parent) { // 复用convertView逻辑自行实现 TextView contentTv = convertView.findViewById(R.id.tv_content); OptionItem item = dataList.get(position); contentTv.setText(item.getContent()); if (item.isSelected()) { // 左侧显示对勾,参数顺序为左、上、右、下的drawable,不需要的传0即可 contentTv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_check, 0, 0, 0); // 要调整图标和文字的间距可以加下面这句,单位为px contentTv.setCompoundDrawablePadding(8); } else { // 未选中时清除所有复合drawable contentTv.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); } // 点击事件,如需仅点击文本响应则把事件设置到contentTv上 convertView.setOnClickListener(v -> { // 单选逻辑:重置所有选中状态 for (OptionItem option : dataList) { option.setSelected(false); } // 设置当前项为选中 item.setSelected(true); notifyDataSetChanged(); }); return convertView; }
3. 实现提交跳转逻辑
给提交按钮设置点击事件,点击时先获取当前选中的项的文本,再携带参数跳转到目标页面:
submitBtn.setOnClickListener(v -> { String selectedContent = ""; for (OptionItem item : dataList) { if (item.isSelected()) { selectedContent = item.getContent(); break; } } // 跳转逻辑 Intent intent = new Intent(CurrentActivity.this, TargetActivity.class); intent.putExtra("SELECTED_CONTENT", selectedContent); startActivity(intent); });
目标页面接收参数后展示即可:
// TargetActivity的onCreate中 String content = getIntent().getStringExtra("SELECTED_CONTENT"); // 赋值给对应TextView展示 TextView showTv = findViewById(R.id.tv_show); showTv.setText(content);
可选调整项
- 如果使用Kotlin开发,核心逻辑一致,仅语法存在差异
- 如果需要实现多选效果,不需要重置所有项的选中状态,直接切换当前点击项的状态即可,提交时收集所有选中的内容传参
- 对勾如果要显示在
TextView右侧,只需要把setCompoundDrawablesWithIntrinsicBounds的第三个参数改成对勾资源,其他位置传0即可 - 图标大小如果不符合预期,可以先对drawable进行resize再调用
setCompoundDrawables方法设置
内容的提问来源于stack exchange,提问作者JackCohen
相关产品推荐
相关产品推荐

