Android在adapter布局里跳转Activity页面,并获取Activity页面数据回调到在适配器的布局中

1.adapter里写一个接口,点击条目时,
//点击item到Activity

  public void chooseUser(CollectSonGoodsAddEntry data);

2.在activity页面中实现adapter接口的方法并赋值,

 mCollectionSonAdapter = new CollectionSonAdapter(this, mEntryAddList, new CollectionSonAdapter.ICollectionSonListener() {
            @Override
            public void chooseUser(CollectSonGoodsAddEntry data) {
                mChooseUserData = data;
                //打开职员/列表页面
                Intent intent = new Intent(CollectionPageActivity.this, PersonListDialogActivity.class);
                intent.putExtra("isSelect", true);
                // mContext.startActivity(intent);
                startActivityForResult(intent, 111);
            }
        });
        mRecyCollectionData.setAdapter(mCollectionSonAdapter);
        mCollectionSonAdapter.notifyDataSetChanged();
    }
    //onActivityResult回调 PersonListDialogActivity的参数
 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        PersonInfo personInfo = (PersonInfo) data.getSerializableExtra("person_info");

        //对象添加回调的职员信息,添加到对象离,适配器获取对象的
        mChooseUserData.setConsumeUserName(personInfo.name);
        mChooseUserData.setConsumeUserId(personInfo.id);

        mCollectionSonAdapter.notifyDataSetChanged();

3.在adapter获取接口实现的参数ICollectionSonListener.chooseUser(collectSonGoodsEntry);

//适配器简要代码

public class CollectionSonAdapter extends RecyclerView.Adapter<CollectionSonAdapter.ViewHolder> implements Serializable {
    Context mContext;
    List<CollectSonGoodsAddEntry> mCollectSonGoodsAddList;  //列表
    CollectionPageActivity activity;
    //获取当前日期
    private int year, month, day;

    public CollectionSonAdapter(Context context, List<CollectSonGoodsAddEntry> dataList, ICollectionSonListener listener) {
        this.mContext = context;
        this.mCollectSonGoodsAddList = dataList;
        this.ICollectionSonListener = listener;
    }

    ICollectionSonListener ICollectionSonListener;

    public interface ICollectionSonListener {
  
        //点击item到Activity
        public void chooseUser(CollectSonGoodsAddEntry data);
    }

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        if (mCollectSonGoodsAddList == null || mCollectSonGoodsAddList.size() < 0) {
            return;
        }
        CollectSonGoodsAddEntry collectSonGoodsEntry = mCollectSonGoodsAddList.get(position);
        holder.tvSeq.setText(String.valueOf(position + 1));
        
        //设置领用人
        holder.tvPerson.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ICollectionSonListener.chooseUser(collectSonGoodsEntry);
            }
        });
         holder.tvPerson.setText(collectSonGoodsEntry.getConsumeUserName());
}
}

Activity简要参考代码

 //点击新增领用
    @OnClick(R.id.btn_addCollection_collectionSonPage)
    void addCollectionDataView() {
        mEntryAddList.add(new CollectSonGoodsAddEntry());
        mCollectionSonAdapter = new CollectionSonAdapter(this, mEntryAddList, new CollectionSonAdapter.ICollectionSonListener() {
            @Override
            public void chooseUser(CollectSonGoodsAddEntry data) {
                mChooseUserData = data;
                //打开职员/列表页面
                Intent intent = new Intent(CollectionPageActivity.this, PersonListDialogActivity.class);
                intent.putExtra("isSelect", true);
                // mContext.startActivity(intent);
                startActivityForResult(intent, 111);
            }
        });
        mRecyCollectionData.setAdapter(mCollectionSonAdapter);
        mCollectionSonAdapter.notifyDataSetChanged();
    }
    //onActivityResult回调 PersonListDialogActivity的参数
 @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        PersonInfo personInfo = (PersonInfo) data.getSerializableExtra("person_info");

        //对象添加回调的职员信息,添加到对象离,适配器获取对象的
        mChooseUserData.setConsumeUserName(personInfo.name);
        mChooseUserData.setConsumeUserId(personInfo.id);

        mCollectionSonAdapter.notifyDataSetChanged();

    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值