这是代码。在这一部分中,answerIsTrue
变量应该初始化为 true,它正确地执行了(我调试和检查)并且也正确地传递到 putExtra() (再次,我调试和检查)。
mCheatButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent i = new Intent(QuizActivity.this, CheatActivity.class);
boolean answerIsTrue = mQuestionBank[mCurrentIndex].isTrueQuestion();
i.putExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, answerIsTrue);
startActivity(i);
}
});
但来到不同的班级,变量mAnswerIsTrue
尽管 putExtra() 传递的参数为 true,但仍被分配为 false(可能是由于默认参数)。这是代码。
mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
我也调试了这一行,它确实被分配为 false。可能出什么问题了?
这是完整的CheatActivity
class:
public class CheatActivity extends Activity {
public static final String EXTRA_ANSWER_IS_TRUE = "com.bignerdranch.android.geoquiz.answer_is_true";
private Button mShowAnswerButton;
private boolean mAnswerIsTrue;
private TextView mAnswerTextView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cheat);
mAnswerIsTrue = getIntent().getBooleanExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, false);
mAnswerTextView = (TextView)findViewById(R.id.answerTextView);
mShowAnswerButton = (Button)findViewById(R.id.showAnswerButton);
mShowAnswerButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
if (mAnswerIsTrue){
mAnswerTextView.setText(R.id.true_button);
}else{
mAnswerTextView.setText(R.id.false_button);
}
}
});
}
}
注意:我是一个完全的初学者,刚刚学习调试。
我不能确定,但我最好的猜测是, getBooleanExtra() 不好。我建议使用简单的 getExtras 然后获取你的值。
i.putExtra(EXTRA_ANSWER_IS_TRUE, value);
Bundle args = MyActivity.getIntent().getExtras();
boolean istrue= args.getBoolean(EXTRA_ANSWER_IS_TRUE, false);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)