Android--获取RecyclerView item(子控件)控件及数据

本文详细介绍了如何在Android中操作RecyclerView的item及其子控件,包括获取特定位置的item、访问子控件以及更新item数据的方法。
摘要由CSDN通过智能技术生成
JSONArray array = new JSONArray();
                List<charge> chargesList = new ArrayList<>();
                Map<String, String> mDeviceHeaderMap = new HashMap<>();
                Map<String, String> mDeviceHeaderMap1 = new HashMap<>();
                for (int i = 0; i < rvCharge.getChildCount(); i++) {

                    RelativeLayout layout = (RelativeLayout) rvCharge.getChildAt(i);
                    CheckBox selectname = layout.findViewById(R.id.ck_peoplewater);
                    EditText rate = layout.findViewById(R.id.et_peoplewater);
                    EditText num = layout.findViewById(R.id.et_peoplewater1);
                    if (selectname.isChecked()){
                        charge c = new charge();
                        c.setName(selectname.getText().toString());
                        c.setRate(rate.getText().toString());
                        c
可以在 RecyclerView 的 Adapter 中定义一个接口,将控件的点击事件传递给 Activity 或 Fragment 中的实现该接口的对象,然后在该对象中记录点击了哪些 Adapter 的 Item。具体实现步骤如下: 1. 在 Adapter 中定义一个接口 OnItemClickListener,该接口有一个方法 onItemClick,用于传递点击事件以及点击的位置信息。 ``` public interface OnItemClickListener { void onItemClick(int position); } ``` 2. 在 Adapter 中定义一个成员变量 mListener,用于保存 OnItemClickListener 的实例。 ``` private OnItemClickListener mListener; public void setOnItemClickListener(OnItemClickListener listener) { mListener = listener; } ``` 3. 在 Adapter 的 ViewHolder 中为控件设置点击事件,然后调用 OnItemClickListener 的 onItemClick 方法将点击事件传递出去。 ``` public class MyViewHolder extends RecyclerView.ViewHolder { private TextView mTextView; public MyViewHolder(View itemView) { super(itemView); mTextView = itemView.findViewById(R.id.text_view); mTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mListener != null) { mListener.onItemClick(getAdapterPosition()); } } }); } } ``` 4. 在 Activity 或 Fragment 中实现 OnItemClickListener 接口,并在其中记录点击了哪些 Adapter 的 Item。 ``` public class MyActivity extends AppCompatActivity implements MyAdapter.OnItemClickListener { private TextView mTextView; private Set<Integer> mClickedPositions = new HashSet<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); RecyclerView recyclerView = findViewById(R.id.recycler_view); mTextView = findViewById(R.id.text_view); MyAdapter adapter = new MyAdapter(); adapter.setOnItemClickListener(this); recyclerView.setAdapter(adapter); } @Override public void onItemClick(int position) { if (mClickedPositions.contains(position)) { mClickedPositions.remove(position); } else { mClickedPositions.add(position); } mTextView.setText("点击了 " + mClickedPositions.size() + " 个 Item"); } } ``` 这样,当控件被点击时,就会调用 OnItemClickListener 的 onItemClick 方法,将点击事件传递给 Activity 或 Fragment 中的实现对象,然后在该对象中记录点击了哪些 Adapter 的 Item。最后,在外部的 TextView 中显示点击了几个 Item
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值