samedi 19 mars 2016

Why does random.nextInt() create "IllegalArgumentException: n <= 0: -1"?

I'm trying to create a quote generator app and a crucial part of the app is random(). But for some reason while the random is in my MainActivity the app won't compile.

package com.example.alpak.liftquote;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        // WHERE MY CODE STARTS

        //RANDOM GENERATOR that DOESN'T WORK

        Random rand = new Random();

        final int irandomIndex = rand.nextInt((3 - 1) + 1)+1;
        final int drandomIndex = rand.nextInt((4 - 6) + 1)+4;
        final int prandomIndex = rand.nextInt((7 - 9) + 1)+7;

        final String iIndex = "s"+irandomIndex;
        final String dIndex = "s"+drandomIndex;
        final String pIndex = "s"+prandomIndex;

        final String RiIndex = getString(getApplicationContext().getResources().getIdentifier(iIndex, "string", getPackageName()));
        final String RdIndex = getString(getApplicationContext().getResources().getIdentifier(dIndex, "string", getPackageName()));
        final String RpIndex = getString(getApplicationContext().getResources().getIdentifier(pIndex, "string", getPackageName()));


        //STRING

        final TextView txt = (TextView) findViewById(R.id.textView);

        //BUTTONS
        //

        Button inspireBtn = (Button) findViewById(R.id.iButton);
        Button deepBtn = (Button) findViewById(R.id.dButton);
        Button positiveBtn = (Button) findViewById(R.id.pButton);

        // ON CLICK LISTENRS


        inspireBtn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                txt.setText(RiIndex);
                                                //"cannot resolve symbol 'index';"
            }
        });

The error message that I get back is:

.

Caused by: java.lang.IllegalArgumentException: n <= 0: -1




Aucun commentaire:

Enregistrer un commentaire