我做了一个测验程序,当我点击列表中的某些内容时,它会转到一个新的类,并且有额外的意图。
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声誉,我甚至无法发表评论!)
答案 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
,这意味着它的常量无法更改。
希望它可以帮到你。