我的listview出现问题(2个textview和1个单选按钮)。
问题: 我的想法是,用户点击列表视图中的项目,并自动检查单选按钮。
我一直在搜索,但我无法使用单选按钮。
我的XML
<RadioButton
android:id="@+id/rdBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false" />
我的适配器
r = (RadioButton) convertView.findViewById(R.id.rdBtn);
r.setChecked(selectedPosition == position);
r.setTag(position);
r.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//r.setChecked(true);
Toast.makeText(context, InformationActivity.result,
Toast.LENGTH_SHORT).show();
selectedPosition = (Integer) view.getTag();
notifyDataSetInvalidated();
}
});
return convertView;
我试过
r.setChecked(true);
在我的活动类中,第一次点击工作,但第二次选择列表视图中的其他项目。
我希望你们中的一些人可以帮助我。 谢谢
答案 0 :(得分:4)
我在这里找到了解决方案: How to check checkbox on clicking an image?
searchList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long arg3) {
LinearLayout item_view = (LinearLayout) view;
final RadioButton itemcheck = (RadioButton) item_view
.findViewById(R.id.rdBtn);
if (itemcheck.isChecked()) {
itemcheck.setChecked(true);
} else {
itemcheck.setChecked(false);
}
itemcheck.setChecked(true);
<RadioButton
android:id="@+id/rdBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false" />
答案 1 :(得分:2)
我不确定我理解你想要达到的目标,但也许这会有所帮助?
r.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
// radio button is checked
} else {
// radio button is not checked
}
}
});
编辑。
假设list
是ListView
,您可以执行以下操作:
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView <? > parent, View view, int position, long id) {
r.setChecked(true); // true to make r checked, false otherwise.
}
});
答案 2 :(得分:0)
您可以设置列表setOnItemClickListener。
答案 3 :(得分:0)
您应该为&#39; convertview&#39;设置OnClick侦听器。并按如下方式切换radioButton -
convertview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
radioButton.toggle()
}
});
答案 4 :(得分:0)
我使用以下功能解决了这个问题,
1.使用radiogroup.clearCheck(); 清除listview滚动中单选按钮的所有选中状态。
2.保持列表中每个单选按钮的选中状态。 如果更改单选按钮选中状态,请更新列表中的值。
答案 5 :(得分:-1)
您可以在listview中使用checktextview并将checktextview的类型设置为radiobutton或使用背景图像进行checktextview检查,使其看起来像单选按钮。希望这可以帮助您