2015-02-21 5 views
0

Я создаю булевский массив, предварительно заполненный ложными значениями. Я понимаю, что мне не нужно объявлять ложные значения, поскольку они автоматически назначаются, однако я пытался использовать разные методы, чтобы попытаться решить проблему.Java boolean array, создающий экземпляр как null

package com.bignerdranch.android.geoquiz; 

import android.app.ActionBar; 
import android.content.Intent; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 


public class QuizActivity extends ActionBarActivity { 

    private static final String TAG = "QuizActivity"; 
    private static final String KEY_INDEX = "index"; 

    private Button mTrueButton; 
    private Button mFalseButton; 
    private Button mNextButton; 
    private Button mCheatButton; 
    private TextView mQuestionTextView; 

    private TrueFalse[] mQuestionBank = new TrueFalse[] { 
     new TrueFalse(R.string.question_oceans, true), 
     new TrueFalse(R.string.question_mideast, false), 
     new TrueFalse(R.string.question_africa, false), 
     new TrueFalse(R.string.question_americas, true), 
     new TrueFalse(R.string.question_asia, true), 
    }; 

    private int mCurrentIndex = 0; 

    private boolean mIsCheater; 

    private boolean[] mCheatedAnswers = new boolean[] {false, false, false, false, false}; 

У меня есть точки останова на последней строке, и когда программа разбивает здесь mCheatedAnswers конкретизируется в нуль. Я не понимаю, почему, поскольку я дал ему логический массив - кто-нибудь знает, почему это может быть?

Предыдущие переменные имеют правильные значения, назначенные им, когда я проверяю их в режиме отладки.

ответ

3

Если вы положили точку останова на на последнюю строку, то при ее ударе задание еще не выполнено.

Если вы положили точку останова в тело конструктора - или просто перешагните через линию - вы увидите, что значение присвоено соответствующим образом. (Было бы проще просто использовать new boolean[5], заметьте ... false - значение по умолчанию ... Имейте в виду, что, вероятно, было бы лучше иметь класс, который включал бы вопрос и независимо от того, обманул пользователь или нет. вам понадобится только одна коллекция.)

+0

Ahh спасибо. Да, я только объявил ложным, что не заявлял, что они, похоже, не работали в то время. Хорошее предложение изменить класс - я не думал об этом – algorhythm

Смежные вопросы