这是我的第一篇文章,
我最近开始涉足 android studio 只是为了好玩。我正在尝试制作一个用于记录分数的应用程序。我已经设置了所有基础知识,我有一个 EditText
但我希望文本“Danny 是获胜者”(或获胜者 EditText
框中的任何名称)在最后显示为 toast 。我这样做是为了目前说“玩家 1/2 是胜利者”。我知道我只需要用变量名称(例如玩家一)替换player1/2部分。
我用过
// player 1 name
EditText playerOne = (EditText) findViewById(R.id.player1);
String player1 = playerOne.getText().toString();
//player 2 name
EditText playerTwo = findViewById(R.id.player2);
String player2 = playerTwo.getText().toString();
从 EditText
获取信息查看然后将其转换为变量player1和player2中的字符串
然后,我在赢得游戏后将文本更改为“player1 +”是获胜者”,但是当我运行该应用程序时,它在打开之前崩溃了。如果我删除上面的 4 行,它就可以正常工作......
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
我的猜测是您遇到了 nullPointerException。我认为是这样,因为您可能会要求变量player1和player2在playerOne和playerTwo具有任何值之前获取它们的值。基本上,您需要做的是仅当其中有内容时才从playerOne 和playerTwo 获取字符串。通常我们放置一个按钮,然后单击该按钮,我们会执行 String player2 = playerTwo.getText().toString();
和 String player1 = playerOne.getText().toString() ;
行。或者等待事件发生,然后根据事件从 EditText 获取字符串。我宁愿你采取这样的方法。试试这个,我很确定这会起作用:
EditText playerOne = (EditText) findViewById(R.id.player1);
EditText playerTwo = findViewById(R.id.player2);
Button button = findViewById(R.id.button); //Make sure you define this is your xml file with the id button
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String player1 = playerOne.getText().toString();
String player2 = playerTwo.getText().toString();
//Set your toast here
}
});
现在请确保您在 xml 文件中定义了按钮,其 ID 为 button,并且只有在 EditTexts 中输入内容后才单击该按钮。有多种方法可以完成同一件事,因此我建议您在这种情况下进行更多研究。
关于java - 从 EditText 字段获取输入并保存在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038548/