Android Studio错误无法解析符号'额外消息'

时间:2017-05-14 05:59:23

标签: android

我做了一个测验程序,当我点击列表中的某些内容时,它会转到一个新的类,并且有额外的意图。

if (quiznumber.equals("Quiz One")){
                        String message = "Quiz One";
                        Intent gotosetone = new Intent(QuizSelectionActivity.this, CoolQuizActivity.class);
                        gotosetone.putExtra(EXTRA_MESSAGE, message);
                        startActivity(gotosetone);
                    }else if (quiznumber.equals("Quiz Two")){
                        String message = "Quiz Two";
                        Intent gotosettwo = new Intent(QuizSelectionActivity.this, CoolQuizActivity.class);
                        gotosettwo.putExtra(EXTRA_MESSAGE, message);
                        startActivity(gotosettwo);

所以我在下一堂课时出现了错误,这就是这个

 Intent gotosetone = getIntent();
    String message = gotosetone.getStringExtra(QuizSelectionActivity.EXTRA_MESSAGE);
    Intent gotosettwo = getIntent();
    String message2 = gotosetone.getStringExtra(QuizSelectionActivity.EXTRA_MESSAGE);

但是EXTRA_MESSAGE是红色的,并说,无法解析符号,EXTRA_MESSAGE

有人可以张贴如何解决这个问题的图片吗? 感谢

(顺便说一下,对此已经有了一个问题,并且有一个答案,但我无法弄清楚如何解决它,我无法要求拍照,因为我有1声誉,我甚至无法发表评论!)

2 个答案:

答案 0 :(得分:0)

您应该将EXTRA_MESSAGE声明为

    public static final String EXTRA_MESSAGE="mystring";

使用'public static'关键字,您可以从其他类访问此字符串变量,而无需创建像

这样的对象
    QuizSelectionActivity.EXTRA_MESSAGE

答案 1 :(得分:0)

嗨丹尼尔用代码和理由详细阐述了Opiatefuchs的评论。 EXTRA_MESSAGE为红色,因为它在QuizSelectionActivity中声明,而CoolQuizActivity无法访问它。因此,解决此问题的一种方法是使其public static,这意味着整个应用程序现在可以访问变量EXTRA_MESSAGE。所以在代码中这就是它的样子

public class QuizSelectionActivity extends Activity {

     public static final String EXTRA_MESSAGE = "extra_message";

     public void someFunction() {
         Intent intent = new Intent(QuizSelectionActivity.this, CoolQuizActivity.class);
         String message = ""; // default value
          if (quiznumber.equals("Quiz One")){
                    message = "Quiz One";
                }else if (quiznumber.equals("Quiz Two")){
                    message = "Quiz Two";
           }

           intent.putExtra(EXTRA_MESSAGE, message);
           startActivity(intent);
     }
}

和另一个类CoolQuizActivity会像这样使用它 公共类CoolQuizActivity扩展了Activity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
         Intent intent = getIntent();
         // this is the message passed "Quiz One" or "Quiz Two"
         String message = intent.getStringExtra(QuizSelectionActivity.EXTRA_MESSAGE);

           // do action using the message passed
     }
}

注意在final中声明密钥时使用QuizSelectionActivity,这意味着它的常量无法更改。 希望它可以帮到你。