java - ListView 中 RadioGroups 中的其他按钮被选中
问题描述
我在 Android Studio 中制作了一个问卷类型的应用程序,我有一个 ListView 包含项目,其中一个 TextView 用于问题,一个 RadioGroup 具有三个 RadioButtons 用于三个答案,每个。每当我在其中一个项目中选择一个按钮时,稍后在列表中,每隔几个按钮也会被选中。我做了一些研究,发现这个问题来自适配器重用,但我不知道如何解决这个问题。有任何想法吗?
这是我的适配器实现:
package com.aronniki.bolyaiprojektv1;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.RadioGroup;
import android.widget.TextView;
public class TesztAdapter extends BaseAdapter {
static class ViewHolderItem
{
TextView textViewItem;
RadioGroup radioGroupItem;
}
private final Context mContext;
private final String[] questions;
private final String[] valaszok;
public TesztAdapter(Context mContext, String[] questions, String[] valaszok) {
this.mContext = mContext;
this.questions = questions;
this.valaszok = valaszok;
}
@Override
public int getCount() {
return questions.length;
}
@Override
public Object getItem(int position) {
return questions[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolderItem viewHolderItem;
if(convertView == null) {
final LayoutInflater layoutInflater = LayoutInflater.from(mContext);
convertView = layoutInflater.inflate(R.layout.layout_teszt, parent, false);
viewHolderItem = new ViewHolderItem();
viewHolderItem.textViewItem = convertView.findViewById(R.id.teszt_kerdes);
viewHolderItem.radioGroupItem = convertView.findViewById(R.id.teszt_group);
convertView.setTag(viewHolderItem);
}
else {
viewHolderItem = (ViewHolderItem) convertView.getTag();
}
viewHolderItem.textViewItem.setText((String)getItem(position));
viewHolderItem.textViewItem.setTag(position);
return convertView;
}
}
解决方案
您每次都必须选择或取消选择您的单选项目,因为您正在使用适配器,它重用相同的列表项视图来填充多个列表项视图。
因此,在getView()
选择项目中,如果应该选择它,则每次都取消选择它,如果不应该选择任何东西。
推荐阅读
- php - 您可以(MySQL)按可选值和不同表中的值排序吗?
- windows - 加载 mod_wsgi 时的 Apache 权限问题
- php - PHP 将 CSV 转换为特定的 JSON 分布
- python - 在 RRS 提要中寻找不同的坏词,停留在变量列表中,如果有的话
- arangodb - 在 ArangoDB 中进行 EXISTS 查询的最佳方法是什么
- javascript - 为什么html2canvas产生模糊的pdf文件?
- css - 代号一的组件在 Eclipse 上失去了风格
- javascript - 异步 API 请求返回所有结果
- php - 从 API 响应中迭代 PHP Laravel 中的多维数组时出现问题
- asp.net-core-mvc - 从 ASP .NET Core 中的任意 URL 手动实例化控制器实例