java - 从android按钮获取文本返回 ""

标签 java android eclipse

我正在尝试使用 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/

相关文章:

java - 如何从一行中仅读取特定数量的字节/字符并转到下一行?

java - 在PHP中读取Java发送的HttpRequest

Android 使 MapView 加载速度更快

java - 为什么签名为空?

android - 如何为小于 24 的 API 添加 Android 网络安全配置

linux - 在 Arch Linux 中使用 Tomcat 7 设置 Eclipse

java - 从InputStream读取到OutputStream的最快方法

javascript - Android:JS Bundle 未从 Metro Bundler 服务器加载

java - 持久性单元错误 : javax. persistence.PersistenceException:没有名为 EntityManager 的持久性提供程序

eclipse - 如果项目从控制台部署到 Tomcat 服务器,如何调试 Spring?