getBooleanExtra() en utilisant uniquement la valeur par défaut de l'argument et non l'on est passé par putExtra()

Voici le code. Dans cette partie, le answerIsTrue variable doit être initialisée à true, ce qui, à juste titre, il n' (j'ai débogué et vérifié) et est à juste titre également passé dans putExtra() (encore une fois, j'ai débogué et vérifié).

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);
        }
    });

Mais de venir à une autre classe, la variable mAnswerIsTrue est affectée à la valeur false (probablement en raison de l'argument par défaut) en dépit de l'argument étant passé par putExtra() est vrai. Voici le code.

mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);

J'ai débogué cette ligne en tant que bien, et il est affecté à la valeur false. Quel peut être le problème?

Voici la complète CheatActivity classe:

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);
            }
        }
    });
}

}

Remarque: je suis un débutant complet, qui viens d'apprendre le débogage.

essayer d'envoyer codé en dur première vraie votre code à l'air bon
Juste essayé. Apparaît toujours comme faux. Quoi et où est le problème? J'espère que vous vouliez envoyer codés en dur un vrai utilisant putExtra(). C'est ce que j'ai essayé, et le problème persiste encore.
Whats les valeurs de EXTRA_ANSWER_IS_TRUE? Peut-être que c'est la correspondance avec quelque chose d'autre. Sinon pour ton code a l'air correct.
êtes-vous sûr que vous mettez en vrai, dans l'intention
voici ce que j'ai déclaré EXTRA_ANSWER_IS_TRUE être public static final String EXTRA_ANSWER_IS_TRUE = "com.bignerdranch.android.geoquiz.answer_is_true";

OriginalL'auteur Slay | 2014-06-26