我正在尝试使用 4 个带有数组的按钮创建一个多项选择测验。我无法从按钮文本中获取变量
我的按钮文本:buttonA:奥巴马,buttonB:林肯,buttonC:华盛顿,buttonD:布什
正确答案是奥巴马(buttonA)
当我将答案行上的代码更改为 answer = "Obama";
(注释行)时,它起作用了。但是当我从 buttonA text
更改为 gettext()
时,它不起作用。
我检查了 gettext()
中的答案变量,它返回“”
请指教,谢谢
这是代码
package com.trivia;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MenuWho extends Activity {
private String keyanswer ,answer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layoutwho);
Button buttons[] = new Button[4];
buttons[0] = (Button)findViewById(R.id.buttonA);
buttons[1] = (Button)findViewById(R.id.buttonB);
buttons[2] = (Button)findViewById(R.id.buttonC);
buttons[3] = (Button)findViewById(R.id.buttonD);
keyanswer = "Obama";
answer = "";
}
public void cekanswer (View view) {
Button selectedbutton = (Button) view;
switch (selectedbutton.getId())
{
case R.id.buttonA:
//answer = "Obama";
answer = selectedbutton.getText().toString();
break;
case R.id.buttonB:
answer = (String) selectedbutton.getText();
break;
case R.id.buttonC:
answer = (String) selectedbutton.getText();
break;
case R.id.buttonD:
answer = (String) selectedbutton.getText();
break;
}
//cek answer
if (answer == keyanswer)
{
Toast.makeText(this,"Correct !", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(this,"Wrong !", Toast.LENGTH_LONG).show();
}
}
}
最佳答案
用户answer.equals(keyanswer)
。 Equals
检查strings
的数据,==
仅检查引用是否相同。
关于java - 从android按钮获取文本返回 "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22265283/