gpt4 book ai didi

java - 在 Intent 之间传递类 ArrayList

转载 作者:行者123 更新时间:2023-12-01 14:11:05 25 4
gpt4 key购买 nike

我创建了一个名为“Player”的类。

public class Player{
public String name;
public int score;
}

每次我单击按钮时,都会生成一个新的 TextView 以及一个新的 Player 类。这是代码:

private TextView createNewTextView (String text){
final LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
final TextView newTextView = new TextView(this);

newTextView.setLayoutParams(lparams);
newTextView.setText(text);

Player newPlayer = new Player();
newPlayer.name = text;
newPlayer.score = 0;
players.add(newPlayer);
zacniIgro.putExtra("players", (ArrayList<Player>) players);
return newTextView;
}

这是正确的方法吗?我认为有一个小缺陷,因为每次单击按钮时,都会在“newPlayer”标签下添加一个新播放器。我该如何解决这个问题?

我的主要问题是这个;如何在第二个 Activity 中“解压”ArrayList,以便可以操作 ArrayList 的每个元素?我尝试了 getStringArrayListExtra() 但它不起作用。我也尝试过 getExtras() 但这也不起作用,因为它检索了一个包。或者说这是正确的方法吗?但是我该如何处理该 bundle 呢?

最佳答案

“标签”newPlayer只是局部变量的名称,每次运行方法时它总是不同的东西,所以这里没有问题。

当您调用putExtra()时在这里players被解释为Serializable所以对应的调用是getSerializableExtra("players") 。然后必须将结果转换为 ArrayList<Player>

要实现此功能,您还必须另外创建 Player类可序列化。这里你可以直接实现接口(interface)Serializable .

关于java - 在 Intent 之间传递类 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18520896/

25 4 0