Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在选择ListView中RadioGroup中的其他按钮_Java_Android_Radio Button_Radio Group_Radiobuttonlist - Fatal编程技术网

Java 正在选择ListView中RadioGroup中的其他按钮

Java 正在选择ListView中RadioGroup中的其他按钮,java,android,radio-button,radio-group,radiobuttonlist,Java,Android,Radio Button,Radio Group,Radiobuttonlist,我正在Android Studio中制作一个问卷类型的应用程序,我有一个列表视图,其中包含一个问题的文本视图和一个包含三个单选按钮的放射组,每个单选按钮对应三个答案。 每当我在其中一个项目中选择一个按钮时,在列表的后面,每隔几个按钮也会被选中。 我做了一些研究,发现这个问题来自适配器重用,但我不知道如何解决这个问题。 有什么想法吗 以下是我的适配器实现: package com.aronniki.bolyaiprojektv1; import android.content.Context;

我正在Android Studio中制作一个问卷类型的应用程序,我有一个列表视图,其中包含一个问题的文本视图和一个包含三个单选按钮的放射组,每个单选按钮对应三个答案。 每当我在其中一个项目中选择一个按钮时,在列表的后面,每隔几个按钮也会被选中。 我做了一些研究,发现这个问题来自适配器重用,但我不知道如何解决这个问题。 有什么想法吗

以下是我的适配器实现:

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()
中选择项目,如果应该选择,则取消选择;如果不应该选择,则每次都取消选择。

在哪里初始化单选按钮?发布更多代码