【问题标题】:Why radiobutton in another row is clicked too when i click radiobutton in first row?当我单击第一行中的单选按钮时,为什么还会单击另一行中的单选按钮?
【发布时间】:2018-10-19 17:07:40
【问题描述】:

我在listview 中有 3 个单选按钮,当我单击第一行上的单选按钮时,当我向下滚动列表视图时,另一个 radiobutton 也被单击。

如何解决?

在第一行点击了单选按钮

也点击了另一行

这是我的适配器代码

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {

    final ViewHolder holder;

    if (convertView == null) {
        holder = new ViewHolder();
        convertView = inflater.inflate( R.layout.item_listview, null);
        holder.tvAlat = (TextView) convertView.findViewById(R.id.tv_alat);

        holder.tvpengecekan = (TextView) convertView.findViewById(R.id.tv_pengecekan);

        holder.tvnormal = (TextView) convertView.findViewById(R.id.tv_normal);

        convertView.setTag(mPengecekanList.get(position).getId_pengecekan());
        holder.baik = (RadioButton) convertView.findViewById(R.id.B);
        holder.rusakringan = (RadioButton) convertView.findViewById(R.id.RR);
        holder.rusakberat = (RadioButton) convertView.findViewById(R.id.RB);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    holder.tvAlat.setText(mPengecekanList.get(position).getNama_alat());
    holder.tvpengecekan.setText(mPengecekanList.get(position).getPengecekan());
    holder.tvnormal.setText(mPengecekanList.get(position).getNormal());

    holder.baik.setTag(position);
    holder.rusakringan.setTag(position);
    holder.rusakberat.setTag(position);

    holder.baik.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
              selectedAnswers.set(position, "1");
                 }});

holder.rusakringan.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
              selectedAnswers.set(position, "2");
                 }});
holder.rusakberat.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
              selectedAnswers.set(position, "3");
                 }});}

【问题讨论】:

  • 这是因为回收行为。在 getView 中,您必须指定默认选择的重做按钮。我认为您将选定的答案列表保留在数组中,并且未在列表中指定选定的答案列表将默认单选检查设置为第一个单选

标签: android listview radio-button


【解决方案1】:

我在您的代码中看不到任何问题

但如果您为某些东西选择唯一的 id,那么另一个 id 肯定会 未选中

所以尝试调试你的代码,你会发现与另一个选择的收音机采用相同的 id 或相同的标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多