1

我正在使用带有 4 个按钮的 Eclipse for Android 编写多项选择测验,以获得可能的答案。

AskQuestion课堂上,我提出了以下内容:

public void Answer1Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 1); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
    }
    public void Answer2Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 2); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
    }
    public void Answer3Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 3); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
    }
    public void Answer4Pressed(View view){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", 4); //Optional parameters
        AskQuestion.this.startActivity(myIntent);

这应该发送一个名为answer的字符串,该字符串声明按下了哪个按钮 - 这是实际发生的情况吗?

CheckQuestion课堂上,我有以下代码

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_check_question);
        Intent intent = getIntent();
        intent.getStringExtra("answer");

哪个应该从按下按钮时发送的意图接收答案字符串 - 这会起作用吗?

我想添加一个 if 条件来检查“answer”的值是否与CorrectAnswer我在 res/values 文件夹中设置的全局变量相同,但我正在努力使其工作。

感谢您的任何帮助或建议。

4

4 回答 4

0

您可以像这样比较字符串

 if(intent.getStringExtra("answer").equals(getResources().getString(R.string.answerstring)))
    {
    Toast.makeText("Answer is correct").show();
    }

但最好用整数来做这些。

于 2013-06-21T08:07:37.160 回答
0

为什么getStringExtra()?我看到你放了一个intmyIntent.putExtra("answer", 3);,因此getStringExtra()我相信会返回 null。尝试改用: getIntExtra(),然后比较整数。

可能有点跑题了,但这里有一个小建议。所有这 4 种方法都包含重复的代码,唯一不同的是答案。您可以创建一个将答案作为参数的方法,并在任何地方使用它。

像这样的东西:

public void answerPressed(View view, int answer){
        Intent myIntent = new Intent(AskQuestion.this, CheckQuestion.class);
        myIntent.putExtra("answer", answer); //Optional parameters
        AskQuestion.this.startActivity(myIntent);
}

现在,您只能将这种方法用于任何答案:

answerPressed(view, 1);
answerPressed(view, 2); 
//.. and so on
于 2013-06-21T08:17:03.507 回答
0

您将 Integer 放在您的意图上,但您想在新 Activity 中获取一个字符串 (getStringExtra)。尝试输入一个字符串(例如用 "" 换行),或者将值作为整数获取。

于 2013-06-21T08:25:00.000 回答
0

在检查问题类中输入以下内容

Bundle extras = getIntent().getExtras();
if (extras != null) {
        answer = extras.getString("answer");

    } 
于 2013-06-21T08:01:47.883 回答