java - 在单击按钮时实例化一个对象并使用增量名称作为引用变量? (安卓工作室,java)

标签 java android variables button instance

为了学习 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/

相关文章:

java - 机器人 : how to add image from gallery and delete image with a Button

java - 有没有更好的方法在 Android 中显示 %

java - 您如何确定默认的 Messenger 应用程序是否在 Android 上打开?

mysql - MySQL插入查询中的用户定义变量

java - 设置 MIDI 的速度

java - 使用 View.GONE 时,RelativeLayout Visibility 不起作用

java - 在 Spring 中使用 REST 调用来暴露服务层

android - 创建未命名为 HelloWorld 的 phonegap 项目

php - 如何在 php 包含文件中设置变量?

javascript - 我应该什么时候使用 let 和 var?