为了学习 java 和 android 应用程序构建,我正在创建一个应用程序来存储玩家的分数(例如,对于真正的纸牌游戏)。所以玩家的数量是不固定的。
首先,我创建了一个类“Player”,其中包含一个 id、一个名称和一个分数。
public class Player {
int idj;
String namej;
int scorej;
public Player(int idj, String namej, int scorej) {
this.idj = idj;
this.namej = namej;
this.scorej = scorej;
}
public int getIdj() {
return idj;
}
public void setIdj(int idj) {
this.idj = idj;
}
public String getNamej() {
return namej;
}
public void setNamej(String namej) {
this.namej = namej;
}
public int getScorej() {
return scorej;
}
public void setScorej(int scorej) {
this.scorej = scorej;
}
}
然后我想在每次单击 UI 上的按钮时创建一个新播放器。这是我的按钮,它在点击时调用“newPlayer”方法:
Button bT1 = (Button) findViewById(R.id.bT1);
bT1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
newPlayer();
}
});
这是每次单击按钮时调用的“newPlayer”方法。但是这个方法行不通。此方法必须实例化播放器对象并根据“nbrPlayer”变量递增引用变量名称。
这个变量正在计算玩家的数量:
public int nbrPlayer = 1;
这是“newPlayer”方法:
private void newPlayer(){
player(nbrPlayer) = new Player(nbrPlayer,"var1FromEditText"," var2FromEditText ");
nbrPlayer ++;
}
感谢您的帮助。 (我最终正在寻找一个很好的教程,但现在我没有找到)。
最佳答案
每次当新玩家点击按钮时,您应该通过传递 id、名称和分数来创建玩家实例。像这样
Player newPlayer = new Player(nbrPlayer,"playerName",0);
但是在您的代码中您没有存储 nbrPlayer 的值,因此当该实例失效时您无法检索该值。所以你应该将它存储在任何存储中以取回它。我使用共享偏好来存储该值。检查我的代码
private void newPlayer(){
SharedPreferences prefs = this.getSharedPreferences(
"MY_DATA", Context.MODE_PRIVATE);
int nbrPlayer = prefs.getInt("idj", 0);
if(nbrPlayer==0){
nbrPlayer = 1;
}
Player newPlayer = new Player(nbrPlayer,"playerName",0);
nbrPlayer ++;
SharedPreferences.Editor editor = getSharedPreferences("MY_DATA", MODE_PRIVATE).edit();
editor.putInt("idj", nbrPlayer);
editor.apply();
Log.d(TAG,"Player:"+nbrPlayer);
}
关于java - 在单击按钮时实例化一个对象并使用增量名称作为引用变量? (安卓工作室,java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733556/