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