我创建了一个RecyclerView,用一个复选框填充用户的联系人。 当用户单击复选框时,我想将该联系人添加到对象。 现在我已经能够做到这一点,但是我遇到了将该对象从适配器发送到另一个活动的问题:
@Override
public void onBindViewHolder(ViewHolder holder, final int position){
// final PlayerDetails thePlayer = playerData.get(position);
// ArrayList<PlayerDetails> thePlayer = playerData;
//holder.playerNameNumber.setText(thePlayer.name + " " + thePlayer.number);
holder.playerNameNumber.setText(playerData.get(position).name +playerData.get(position).number );
holder.pickedPlayer.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View thisView){
PlayerDetails contact = new PlayerDetails();
contact.number = playerData.get(position).name;
contact.name = playerData.get(position).number;
playerListGame.addPlayer(contact);
String name = playerData.get(position).name;
Toast.makeText(thisView.getContext(),name + " added",Toast.LENGTH_LONG).show();
}
});
}
当我调试上面的内容时,我可以看到playerListGame包含我要添加的数据。
现在,我尝试执行以下操作:
public PlayerList donePickingSendPlayers(){
return playerListGame;
}
在我的适配器的底部。 但是当我调试时,它显示它的值为0.(我在开始时初始化它。
如何将playerListGame发送到另一个活动?
我已经设置了一个浮动按钮,onClick会执行以下操作:
private void donePicking(){
ContactPickerRecyclerViewAdapter justToGetPlayerData = new ContactPickerRecyclerViewAdapter();
justToGetPlayerData.donePickingSendPlayers();
Intent backToComposeMessage = new Intent(this,ComposeMessage.class);
startActivity(backToComposeMessage);
}
但这似乎不像“donePickingPlayers”中的playerListGame那样有用 是空的。
答案 0 :(得分:0)
使用适配器中的方法donePicking(PlayerDetails contact)编写一个接口,并在您的活动中实现该方法并在您的活动中覆盖方法,您将在重写方法中获取PlayerDetails对象,并将其传递给下一个活动。
答案 1 :(得分:0)
在使用适配器内创建的方法获取数据时,使用您在recyclerview中设置的适配器的相同对象。
private void donePicking(){
ContactPickerRecyclerViewAdapter justToGetPlayerData = new
ContactPickerRecyclerViewAdapter();
justToGetPlayerData.donePickingSendPlayers();
Intent backToComposeMessage = new Intent(this,ComposeMessage.class);
startActivity(backToComposeMessage);
}
在此方法中,您将创建适配器类的另一个实例,它始终为您提供空数据。