我有25個圖像按鈕和1個隨機按鈕。當我點擊洗牌按鈕時,這些按鈕將隨機顯示圖片無重複。我的問題是每當我點擊shuffle按鈕時都會出現錯誤。它說,「不幸的是,'App_Name'已停止。」請幫幫我。 :([解決] imagebutton沒有重複(圖片拼圖)的隨機圖像
Shuffle.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final int[] easy1 = {R.drawable.a11,R.drawable.a12,R.drawable.a13,R.drawable.a14,R.drawable.a15
,R.drawable.a16,R.drawable.a17,R.drawable.a18,R.drawable.a19,R.drawable.a110
,R.drawable.a111,R.drawable.a112,R.drawable.a113,R.drawable.a114,R.drawable.a115
,R.drawable.a116,R.drawable.a117,R.drawable.a118,R.drawable.a119,R.drawable.a120
,R.drawable.a121,R.drawable.a122,R.drawable.a123,R.drawable.a124};
int[] a = new int[25];
int i = 0;
int j = 0;
boolean flag = false;
flag = false;
i = 0;
a[j] = 1;
while (i <= 23){
rnd = (int)((Math.random() * 23)+1);
for (j = 1; j <= i; j++){
if (a[j] == rnd)
{
flag = true;
}
}
if (flag == true)
{
flag = false;
}
else
{
a[i] = rnd;
i = i + 1;
}
}
iv1.setImageResource(easy1[a[0]]);
iv2.setImageResource(easy1[a[1]]);
iv3.setImageResource(easy1[a[2]]);
iv4.setImageResource(easy1[a[3]]);
iv5.setImageResource(easy1[a[4]]);
iv6.setImageResource(easy1[a[5]]);
iv7.setImageResource(easy1[a[6]]);
iv8.setImageResource(easy1[a[7]]);
iv9.setImageResource(easy1[a[8]]);
iv10.setImageResource(easy1[a[9]]);
iv11.setImageResource(easy1[a[10]]);
iv12.setImageResource(easy1[a[11]]);
iv13.setImageResource(easy1[a[12]]);
iv14.setImageResource(easy1[a[13]]);
iv15.setImageResource(easy1[a[14]]);
iv16.setImageResource(easy1[a[15]]);
iv17.setImageResource(easy1[a[16]]);
iv18.setImageResource(easy1[a[17]]);
iv19.setImageResource(easy1[a[18]]);
iv20.setImageResource(easy1[a[19]]);
iv21.setImageResource(easy1[a[20]]);
iv22.setImageResource(easy1[a[21]]);
iv23.setImageResource(easy1[a[22]]);
iv24.setImageResource(easy1[a[23]]);
iv25.setImageResource(R.drawable.a3);
}
});
logcat的:
9月1日至23日:08:44.004:E/AndroidRuntime(981):致命異常:主
9月1日至23日:08:44.004:E/AndroidRuntime(981):java.lang.ArrayIndexOutOfBoundsException:length = 24; index = 24
01-23 09:08:44.004:E/AndroidRuntime(981):at com.jepoy.Shift.Main $ 1.onClick( Main.java:102)
01-23 09:08:44.004:E/Andr oidRuntime(981):at android.view.View.performClick(View.java:4084)
01-23 09:08:44.004:E/AndroidRuntime(981):at android.view.View $ PerformClick.run (View.java:16966)
9月1日至23日:08:44.004:E/AndroidRuntime(981):在android.os.Handler.handleCallback(Handler.java:615)
9月1日至23日:08:44.004:E/AndroidRuntime(981):在android.os.Handler.dispatchMessage(Handler.java:92)
01-23 09:08:44.004:E/AndroidRuntime(981):在android。 os.Looper.loop(Looper.java:137)
9月1日至23日:08:44.004:E/AndroidRuntime(981):在android.app.ActivityThread.main(ActivityThread.java:4745)
9月1日至23日:08:44.004:E/AndroidRuntime( 981):在java.lang.reflect.Method.invokeNative(本地方法)
01-23 09:08:44.004:E/AndroidRuntime(981):at java.lang.reflect.Method.invoke(Method。 Java的:511)
九月一日至23日:08:44.004:E/AndroidRuntime(981):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
01 -23 09:08:44.004:E/AndroidRu ntime(981):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
01-23 09:08:44.004:E/AndroidRuntime(981):at dalvik.system.NativeStart 。主要(本地方法)
9月1日至23日:09:42.344:E /跟蹤(1029):錯誤打開跟蹤文件:沒有這樣的文件或目錄(2)
你可以看看LogCat並粘貼紅色的錯誤信息嗎?這將有助於解決錯誤:) –
LogCat發佈。 :) – JepoyCastle