【发布时间】:2012-11-26 14:59:39
【问题描述】:
所以我仍然在这里开发我的第一个小应用程序,它是 Android 和 Java 的新手,所以我在这里遇到了一个基本的小问题。我的第一个问题的答案真的很有帮助,所以在研究并没有想出任何东西之后,我想我会寻求更多帮助!
这个想法是,用户在另一个屏幕上做出选择 A、B、C 或 D,并且这些选择作为字符串通过意图传递。 OnResume 检查选项是否不为空,并设置与该字符串对应的整数。稍后当用户按下另一个按钮时,一些 if else 逻辑会检查该 int 并根据所选择的执行和操作。问题是应用在 onResume 时崩溃了。
我了解到我必须使用 equals(string) 来比较字符串引用,但也许问题是我正在尝试比较一个字符串与文字字符串的引用?任何帮助将不胜感激。 谢谢!
protected void onResume() {
super.onResume();
// Get the message from the intent
Intent intent = getIntent();
String choice = intent
.getStringExtra(ExtensionSetupSlector.TORQUE_SETUP);
// Create the text view
TextView displayChoice = (TextView) findViewById(R.id.displayChoice);
if (!choice.equals("")){
displayChoice.setText(choice);
if (choice.equals("A")) {
myChoice = 1;
}
if (choice.equals("B")) {
myChoice = 2;
}
if (choice.equals("C")) {
myChoice = 3;
}
if (choice.equals("D")) {
myChoice = 4;
}
}
}
myChoice 是在 ...extends Activity{ 之后立即声明的,而且我不太确定这是否真的应该在 onResume 中,但在我开始尝试在 onResume 中设置 myChoice 之前它就可以工作(当我只是显示选择)。再次感谢!
【问题讨论】:
-
你应该发布一个 LogCat。另外,您说 onResume 检查字符串是否为空,但是您没有 if 检查
if (string == null) -
首先确保您通过使用 Log 从 getIntent 中获得选择价值
-
@A--C,谢谢,这显然正是我所需要的。我将 if (!choice.equals("")){ 更改为 if (choice != null) 并且它有效!
-
Java 最大的特点之一就是空引用。请务必牢记它们。
标签: android string if-statement int