我要去其他活动。但是我得到了错误。应用程序已停止。
日志:
E/AndroidRuntime( 5551): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.x_ren.dnm/com.example.x_ren.dnm.gosterim}: java.lang.IndexOutOfBoundsException: Invalid index 9, size is 9
E/AndroidRuntime( 5551): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
E/AndroidRuntime( 5551): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
E/AndroidRuntime( 5551): at android.app.ActivityThread.access$800(ActivityThread.java:151)
E/AndroidRuntime( 5551): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
E/AndroidRuntime( 5551): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 5551): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 5551): at android.app.ActivityThread.main(ActivityThread.java:5254)
E/AndroidRuntime( 5551): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 5551): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 5551): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/AndroidRuntime( 5551): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
E/AndroidRuntime( 5551): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 9, size is 9
E/AndroidRuntime( 5551): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
E/AndroidRuntime( 5551): at java.util.ArrayList.get(ArrayList.java:308)
E/AndroidRuntime( 5551): at com.example.x_ren.dnm.gosterim.onCreate(gosterim.java:96)
E/AndroidRuntime( 5551): at android.app.Activity.performCreate(Activity.java:5990)
E/AndroidRuntime( 5551): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/AndroidRuntime( 5551): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
主要活动(转到其他活动-意图活动):
gosterimbtn.setOnClickListener ( new View.OnClickListener () {
public void onClick (View gosterimv){
startActivity(new Intent(MainActivity.this, gosterim.class));
}
});
其他活动:
resimb1 = (ImageButton)findViewById(R.id.bulmacaresim1);
resimb2 = (ImageButton)findViewById(R.id.bulmacaresim2);
resimb3 = (ImageButton)findViewById(R.id.bulmacaresim3);
resimb4 = (ImageButton)findViewById(R.id.bulmacaresim4);
bulmacat = (TextView)findViewById(R.id.bulmacasorut);
ArrayList<Integer> resimsayi = new ArrayList<Integer>();
resimsayi.add(1);
resimsayi.add(2);
resimsayi.add(3);
resimsayi.add(4);
resimsayi.add(5);
resimsayi.add(6);
resimsayi.add(7);
resimsayi.add(8);
resimsayi.add(9);
ArrayList<Integer> resimler = new ArrayList<Integer>();
resimler.add(R.drawable.ari);
resimler.add(R.drawable.aslan);
resimler.add(R.drawable.ayi);
resimler.add(R.drawable.fil);
resimler.add(R.drawable.kedi);
resimler.add(R.drawable.kopek);
resimler.add(R.drawable.koyun);
resimler.add(R.drawable.maymun);
resimler.add(R.drawable.zurafa);
ArrayList<String> resimad = new ArrayList<String>();
resimad.add("ari");
resimad.add("aslan");
resimad.add("ayi");
resimad.add("fil");
resimad.add("kedi");
resimad.add("kopek");
resimad.add("koyun");
resimad.add("maymun");
resimad.add("zurafa");
Random rastgele = new Random();
int secilen = rastgele.nextInt(resimsayi.size());
resimsayi.remove(resimsayi.get(secilen));
bulmacat.setText(resimad.get(resimsayi.get(secilen)));
int resimd1 = rastgele.nextInt(resimsayi.size());
resimsayi.remove(resimsayi.get(resimd1));
int resimd2 = rastgele.nextInt(resimsayi.size());
resimsayi.remove(resimsayi.get(resimd2));
int resimd3 = rastgele.nextInt(resimsayi.size());
resimsayi.remove(resimsayi.get(resimd3));
resimb1.setImageResource(resimler.get(resimsayi.get(resimd1)));
resimb2.setImageResource(resimler.get(resimsayi.get(resimd2)));
resimb3.setImageResource(resimler.get(resimsayi.get(resimd3)));
resimb4.setImageResource(resimler.get(resimsayi.get(secilen)));
AlertDialog.Builder yapici = new AlertDialog.Builder(gosterim.this);
yapici.setTitle("deneme");
yapici.setMessage(resimsayi.get(resimd1) + " " + resimsayi.get(resimd2) + " " + resimsayi.get(resimd3) + " " + resimsayi.get(secilen) + "/n " + resimd1 + " " + resimd2 + " " + resimd3 + " " + secilen);
yapici.show();
我会感到困惑。我得到一个随机数并删除它,因为没有得到一些数字。
希望您能理解
我需要你的帮助。
我等你的答案。
答案 0 :(得分:0)
ArrayList索引以0开头,因此最后一个元素的索引将始终等于size - 1
。
int resimd1 = rastgele.nextInt(resimsayi.size() - 1);
int resimd2 = rastgele.nextInt(resimsayi.size() - 1);
int resimd3 = rastgele.nextInt(resimsayi.size() - 1);