我正在嘗試創建一個報價生成器應用程序,並且該應用程序的關鍵部分是random()。但由於某些原因,隨機在我的MainActivity中,應用程序將無法編譯。爲什麼random.nextInt()創建「IllegalArgumentException:n <= 0:-1」?
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';"
}
});
,我回來是錯誤消息:
。
所致:java.lang.IllegalArgumentException異常:N < = 0:-1
粘貼完整的堆棧跟蹤請 – fge
你想達到什麼目的?給nextInt賦予負值拋出異常... –
@Sanruza當你使用'rand.nextInt((3 - 1)+ 1)+1時,你打算產生的數字範圍是多少? – user3437460