• 万能适配器basequickadapter + recycleview实现单选并且默认选择第一个


    1、首先,确保您已经添加了BaseQuickAdapter和RecyclerView的依赖项。您可以在项目的build.gradle文件中添加以下依赖项:

    1. dependencies {
    2. implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
    3. implementation 'androidx.recyclerview:recyclerview:1.2.1'
    4. }

    2、创建一个数据模型类来表示每个列表项的数据。例如,假设您有一个名为Item的数据类:

    1. public class Item {
    2. private String name;
    3. private boolean isSelected;
    4. public Item(String name) {
    5. this.name = name;
    6. this.isSelected = false;
    7. }
    8. public String getName() {
    9. return name;
    10. }
    11. public boolean isSelected() {
    12. return isSelected;
    13. }
    14. public void setSelected(boolean selected) {
    15. isSelected = selected;
    16. }
    17. }

    3、创建一个Adapter类,继承自BaseQuickAdapter。在Adapter中,您需要处理单选逻辑以及默认选择第一个项的逻辑:

    1. public class ItemAdapter extends BaseQuickAdapter<Item, BaseViewHolder> {
    2. public ItemAdapter(@Nullable List<Item> data) {
    3. super(R.layout.item_layout, data);
    4. }
    5. @Override
    6. protected void convert(BaseViewHolder helper, Item item) {
    7. helper.setText(R.id.text_view, item.getName());
    8. // 设置选中状态的背景色
    9. if (item.isSelected()) {
    10. helper.itemView.setBackgroundColor(ContextCompat.getColor(mContext, R.color.selected_color));
    11. } else {
    12. helper.itemView.setBackgroundColor(Color.TRANSPARENT);
    13. }
    14. }
    15. public void setItemSelected(int position) {
    16. for (int i = 0; i < getData().size(); i++) {
    17. getData().get(i).setSelected(i == position);
    18. }
    19. notifyDataSetChanged();
    20. }
    21. }

    4、在您的Activity或Fragment中,初始化RecyclerView和Adapter,并设置默认选择第一个项:

    1. public class MainActivity extends AppCompatActivity {
    2. private RecyclerView recyclerView;
    3. private ItemAdapter adapter;
    4. private List<Item> itemList = new ArrayList<>();
    5. @Override
    6. protected void onCreate(Bundle savedInstanceState) {
    7. super.onCreate(savedInstanceState);
    8. setContentView(R.layout.activity_main);
    9. recyclerView = findViewById(R.id.recycler_view);
    10. recyclerView.setLayoutManager(new LinearLayoutManager(this));
    11. // 初始化数据
    12. for (int i = 0; i < 10; i++) {
    13. itemList.add(new Item("Item " + (i + 1)));
    14. }
    15. // 创建Adapter并设置默认选中第一个项
    16. adapter = new ItemAdapter(itemList);
    17. adapter.setItemSelected(0);
    18. recyclerView.setAdapter(adapter);
    19. // 设置RecyclerView的点击事件
    20. adapter.setOnItemClickListener((adapter, view, position) -> {
    21. adapter.setSelected(position);
    22. });
    23. }
    24. }
  • 相关阅读:
    煤炉、Newegg测评自养号环境搭建技术
    学习记忆——宫殿篇——记忆宫殿——记忆桩——单间+客厅+厨房+厕所+书房+院子
    docker登陆mysql,密码正确却提示错误
    【WAX链游】发布一个免费开源的MiningNetwork合约脚本BTK
    代理技术的崭新纪元:Socks5代理和代理IP的多重应用
    vue3.0 + qiankun遇到的问题
    FPGA学习笔记(一) FPGA最小系统
    【算法】归并排序 详解
    VScode多文件编译/调试配置
    ApplicationContext和ServletContext
  • 原文地址:https://blog.csdn.net/sinat_15411661/article/details/132915518