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();

    }

猜你喜欢

转载自blog.csdn.net/ShiXinXin_Harbour/article/details/108763745