• RecyclerView的应用及RecyclerView的点击事件


    第一步:导入依赖包   implementation 'com.android.support:recyclerview-v7:25.3.1'

    第二步:用 JSONArray 解析后台数据并setadapter  

    JSONArray jsonArray = jsonObject.getJSONArray("obj");

    if (jsonArray.size() > 0) {

    for (int i = 0; i < jsonArray.size(); i++) {

    JSONObject jb = jsonArray.getJSONObject(i); 

    patientID = jb.getInteger("id");

    patientName = jb.getString("name"); 

    patientPhone = jb.getString("phone");

    patientSFZNum = jb.getString("identityno");

    PatientPhoneBean patientPhoneBean = new PatientPhoneBean();

    patientPhoneBean.setPatientID(patientID);

    patientPhoneBean.setPatientName(patientName);

    patientPhoneBean.setPatientPhone(patientPhone);

    patientPhoneBean.setPatientSFZNum(patientSFZNum);

    patientPhoneList.add(patientPhoneBean);

    }

    phoneBean.setPhoneobj(patientPhoneList);

    Message message = Message.obtain();

    message.what = GETPATIENTPHONE_FLAG;

    message.obj = phoneBean.getPhoneobj();

    handler.sendMessage(message);

    然后在 handleMessage处理收到的消息:

    case GETPATIENTPHONE_FLAG:

    getPatientPhoneAdapter.addData((List<PatientPhoneBean>) msg.obj);

    getPatientPhoneRV.setAdapter(getPatientPhoneAdapter);

    getPatientPhoneSwipeRL.setRefreshing(false);

    break;

    第三步:在Adapter里面的操作:

    @Override

    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, final int position) {

    if (holder instanceof GetPatientPhoneAdapter.MyHolder) {

    final PatientPhoneBean data = ppData.get(position);

    ((GetPatientPhoneAdapter.MyHolder) holder).tv_num.setText(data.getPatientID() + "");

    ((GetPatientPhoneAdapter.MyHolder) holder).tv_name.setText(data.getPatientName() + "");

    ((GetPatientPhoneAdapter.MyHolder) holder).tv_phone.setText(data.getPatientPhone() + "");

    ((GetPatientPhoneAdapter.MyHolder) holder).tv_sfznum.setText(data.getPatientSFZNum() + "");

    //点击事件

    ((GetPatientPhoneAdapter.MyHolder) holder).ll_commitphone.setOnClickListener(new View.OnClickListener(){

    @Override

    public void onClick(View v) {

    if (listener != null) {

    listener.onClick(position,data.getPatientPhone() + "");

    }}});

    }}

    //RecyclerView的点击事件

    //一、在recycler的适配器中定义接口

    public interface OnItemClickListener {

    void onClick(int position, String phone);

    }

    private OnItemClickListener listener;

    //第二步, 写一个公共的方法

    public void setOnItemClickListener(OnItemClickListener listener) {

    this.listener = listener;

    }

    步:点击事件的使用

    getPatientPhoneAdapter.setOnItemClickListener(new GetPatientPhoneAdapter.OnItemClickListener(){

    @SuppressLint("LongLogTag")

    @Override

    public void onClick(int position, final String phone) {

    //处理点击事件

    Log.d(TAG,"recycleview的点击事件:" + position + ",phone:" + phone);

    }});

    添加删除数据功能:

    //  删除数据
    public void removeData(int position) {
    peData.remove(position);
    //删除动画
    notifyItemRemoved(position);
    notifyDataSetChanged();
    }

     有什么疑问,欢迎评论!

  • 相关阅读:
    MS SQL 数据库状态为SUSPECT(可疑)的处理方法
    根據名稱查找文件,并移動
    deploy war to weblogic via script(shell)
    maven打包时包含所有依赖的jar
    随笔
    如何在Oracle SQL Developer對Procedure除錯
    git常用命令和記錄
    英語筆記
    IDEA設置
    mysql常用命令和记录
  • 原文地址:https://www.cnblogs.com/dmrbell/p/11763213.html
Copyright © 2020-2023  润新知