如何将int添加到forloop中的数组中

时间:2015-12-17 08:52:06

标签: android

我正在调试时得到一个数组引用,当我正常运行我的应用程序时,只要按下激活此方法的按钮就会关闭... 我希望将int worp的值添加到forloop中的数组中。

编辑: 当尝试将worp添加到arrayDobbelstenen

时,它会停止调试

SpeelveldFragment类:

public class SpeelveldFragment extends Fragment {
Interfaces mCallback;
ImageButton btnBack;

//Aanmaken van een timer
Timer timer;
TimerTask timerTask;

//Alle imageviews voor de dobbelstenen en een arraylist om ze in te kunnen zetten
ImageView imgDice1, imgDice2, imgDice3, imgDice4, imgDice5, imgDice6, imgDice7, imgDice8;
ArrayList<ImageView> imgViews = new ArrayList<ImageView>();
int[] arrayDobbelstenen;

//Een nieuwe dobbelsteen aanmaken
Dobbelsteen dobbelsteen = new Dobbelsteen();

SharedPreferences prefs;
int aantalDobbelstenen = 3;
String naam = "Default";
boolean enablePinguins = false;

//De layout waar de
LinearLayout linearPinguins;

int aantalLeeuwen = 0;
int aantalHerten = 0;
int aantalPinguins = 0;
int aantalPogingen = 0;
int score = 1000;
int level = 1;
int seconds = 0;

ImageButton btnThrow;
ImageButton btnCheck;
ImageButton btnReset;
ImageButton btnHelp;
EditText txtLions;
EditText txtDeers;
EditText txtPinguins;
TextView lblTime;

Popup popup;
LayoutInflater layoutInflater;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_speelveld, container, false);
    layoutInflater = inflater;
    //Terug naar het hoofdmenu
    btnBack = (ImageButton)v.findViewById(R.id.btnBack);
    btnBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mCallback.goToPage("hoofdmenu");
        }
    });

    //De shared preferences ophalen en de waardes hieruit toevoegen aan de variabelen
    prefs = getActivity().getSharedPreferences("settings", Context.MODE_PRIVATE);
    aantalDobbelstenen = prefs.getInt("aantalDobbelstenen", 3);
    naam = prefs.getString("name", "Default");
    enablePinguins = prefs.getBoolean("enablePinguins", false);

    //Het invoerveld voor de pinguins weghalen als deze niet ingevuld hoeft te worden
    linearPinguins = (LinearLayout)v.findViewById(R.id.linearPinguins);
    if(!enablePinguins){
        ((ViewGroup) linearPinguins.getParent()).removeView(linearPinguins);
    }

    imgDice1 = (ImageView)v.findViewById(R.id.imgDice1);
    imgDice2 = (ImageView)v.findViewById(R.id.imgDice2);
    imgDice3 = (ImageView)v.findViewById(R.id.imgDice3);
    imgDice4 = (ImageView)v.findViewById(R.id.imgDice4);
    imgDice5 = (ImageView)v.findViewById(R.id.imgDice5);
    imgDice6 = (ImageView)v.findViewById(R.id.imgDice6);
    imgDice7 = (ImageView)v.findViewById(R.id.imgDice7);
    imgDice8 = (ImageView)v.findViewById(R.id.imgDice8);

    txtLions = (EditText)v.findViewById(R.id.txtLions);
    txtLions.setEnabled(false);
    txtDeers = (EditText)v.findViewById(R.id.txtDeers);
    txtDeers.setEnabled(false);
    if(enablePinguins){
        txtPinguins = (EditText)v.findViewById(R.id.txtPinguins);
        txtPinguins.setEnabled(false);
    }

    //Alle imageviews in de arraylist plaatsen
    imgViews.add(imgDice1);
    imgViews.add(imgDice2);
    imgViews.add(imgDice3);
    imgViews.add(imgDice4);
    imgViews.add(imgDice5);
    imgViews.add(imgDice6);
    imgViews.add(imgDice7);
    imgViews.add(imgDice8);

    //Dobbelstenen gooien zodra op de knop wordt geklikt
    btnThrow = (ImageButton)v.findViewById(R.id.btnThrow);
    btnThrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            gooien();
        }
    });

    btnCheck = (ImageButton)v.findViewById(R.id.btnCheck);
    btnCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            check();
        }
    });
    btnCheck.setEnabled(false);

    btnReset = (ImageButton)v.findViewById(R.id.btnReset);
    btnReset.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            reset();
        }
    });
    btnReset.setEnabled(false);

    popup = new Popup();
    btnHelp = (ImageButton)v.findViewById(R.id.btnHelp);

    btnHelp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).create();
            alertDialog.setTitle("Help");

            alertDialog.setMessage(getString(R.string.lblHelp));
            alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
            alertDialog.show();
        }
    });

    return v;
}

public void gooien(){
    //De knop om dobbelstenen te gooien uit zetten. Je kan pas weer gooien zodra je op reset klikt.
    //Invoer velden activeren.
    btnThrow.setEnabled(false);
    txtLions.setEnabled(true);
    txtDeers.setEnabled(true);
    if(enablePinguins){
        txtPinguins.setEnabled(true);
    }
    btnReset.setEnabled(true);
    btnCheck.setEnabled(true);
    //Klok om aantal seconden bij te houden
    timer = new Timer();
    timerTask = new TimerTask() {
        @Override
        public void run() {
            seconds++;
        }
    };
    timer.scheduleAtFixedRate(timerTask, 1000, 1000);


    for(int i = 0; i < aantalDobbelstenen; i++){
        //Een dobbelsteen gooien
        int worp = dobbelsteen.gooi();
        arrayDobbelstenen[i] = worp;

        //Afbeeldingen ophalen aan de hand van het aantal ogen dat is gegooid
        int resID = getResources().getIdentifier("dice" + worp , "drawable", getActivity().getPackageName());
        imgViews.get(i).setImageResource(resID);

        // Dieren aantal toekennen aan de variabelen
        switch(MainActivity.levelSelection){
            case 1:
                level1();
                break;
            case 2:
                level2();
                break;
            case 3:
                level3();
                break;
            default:

                break;
        }
    }
}

public void level1(){


}

public void level2(){


}

public void level3(){


}


@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);

    // This makes sure that the container activity has implemented
    // the callback interface. If not, it throws an exception
    try {
        mCallback = (Interfaces) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException(activity.toString()
                + " must implement OnHeadlineSelectedListener");
    }
}
}

Dobbelsteen班:

public class Dobbelsteen {

//Het aantal ogen dat een dobbelsteen kan hebben.
private final int max = 6;

//De huidige waarde
private int currentValue;

//Constructor
public Dobbelsteen(){
    currentValue = 1;
}

//Methode om een dobbelsteen te gooien. Geeft een int terug voor het aantal ogen.
public int gooi(){
    currentValue = (int)(Math.random() * max) + 1;
    return currentValue;
}

//Geeft de huidige waarde terug
public int getCurrentValue(){
    return currentValue;
}

@Override
public String toString() {
    return Integer.toString(currentValue);
}
}

1 个答案:

答案 0 :(得分:-1)

arrayDobbelstenen为null。

在开始循环之前初始化arrayDobbelstenen的大小 例如:

int[] arrayDobbelstenen = new int[3];