android - 当在 Recyclerview 中滚动时,单选按钮会更改其选择

标签 android

我正在使用 RecylerView 来设置 RadioButton。但是在选择时滚动时选择的位置会改变。请帮助我。

Thanx in advance!!!

我的 RecylerView 布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/dummy_recycle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
    </android.support.v7.widget.RecyclerView>


</RelativeLayout>

我的单选按钮布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
<LinearLayout
    android:layout_width="wrap_content"
    android:orientation="vertical"
    android:layout_height="wrap_content">
    <RadioButton
        android:id="@+id/radio_dummy"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>
</RelativeLayout>

我的 RecylerView Java 文件

public class Dummy extends AppCompatActivity {
    ArrayList<String> arr_qty;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dummy);
        arr_qty=new ArrayList<>();
        for(int i =0;i<50;i++){
            arr_qty.add(String.valueOf(i));

        }
        RecyclerView dummy = (RecyclerView)findViewById(R.id.dummy_recycle);
        DummyAdapter adapter = new DummyAdapter(getApplicationContext(), arr_qty);
        dummy.setLayoutManager(new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.VERTICAL, false));
        dummy.setAdapter(adapter);
    }
}

我的 RecylerView 适配器

public class DummyAdapter extends RecyclerView.Adapter<DummyAdapter.MyViewHolder>{
    private Context c;
    ArrayList<String> arr=new ArrayList<>();
    public DummyAdapter(Context context, ArrayList<String> arr_qty) {
        this.arr = arr_qty;
        this.c = context;

    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.dummy_value, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
    }

    @Override
    public int getItemCount() {
        return arr.size();
    }

    public class MyViewHolder extends RecyclerView.ViewHolder {
        public RadioButton radio;
        public MyViewHolder(View itemView) {
            super(itemView);
            radio = (RadioButton) itemView.findViewById(R.id.radio_dummy);
        }
    }
}

最佳答案

在 Recyclerview 适配器中,您可以添加以下行。它已经在我的代码中运行了。此代码有助于修复您的列表位置。

public int getItemViewType(int position) {
        return position;
    }

关于android - 当在 Recyclerview 中滚动时,单选按钮会更改其选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39340604/

相关文章:

android - RelativeLayout 没有意义

android - 如何将详细信息从 Recycler View 传递到另一个 Activity ?

android - 在 webview 中显示 Whatsapp 条形码网页

android - 带有自签名证书的 TLS 保护的 TCP 服务器和客户端

android - 使用 OpenStreetMap 获得最高速度

Android 与 ASP.NET MVC4 的连接

android - 使用软件控制的继电器断开 USB?

java - Android - 保持服务在锁屏状态下保持响应

android - 两个按钮并排的线性布局 - android

android nougat edittext 光标未在开始时对齐。它总是提示我到中心