In android, I added onClickListener to all buttons.
The codes:
ArrayList<ImageButton> alfabebutonlar = new ArrayList<ImageButton>();
alfabebutonlar.add((ImageButton)findViewById(R.id.harfab));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfbb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfcb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfccb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfdb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfeb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harffb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfgb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfggb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfhb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfib));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfiib));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfjb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfkb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harflb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfmb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfnb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfob));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfoob));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfpb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfrb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfsb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfssb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harftb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfub));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfuub));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfvb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfyb));
alfabebutonlar.add((ImageButton)findViewById(R.id.harfzb));
ArrayList<String> alfabeharfler = new ArrayList<String>();
alfabeharfler.add("A");
alfabeharfler.add("B");
alfabeharfler.add("C");
alfabeharfler.add("Ç");
alfabeharfler.add("D");
alfabeharfler.add("E");
alfabeharfler.add("F");
alfabeharfler.add("G");
alfabeharfler.add("Ğ");
alfabeharfler.add("H");
alfabeharfler.add("İ");
alfabeharfler.add("I");
alfabeharfler.add("J");
alfabeharfler.add("K");
alfabeharfler.add("L");
alfabeharfler.add("M");
alfabeharfler.add("N");
alfabeharfler.add("O");
alfabeharfler.add("Ö");
alfabeharfler.add("P");
alfabeharfler.add("R");
alfabeharfler.add("S");
alfabeharfler.add("Ş");
alfabeharfler.add("T");
alfabeharfler.add("U");
alfabeharfler.add("Ü");
alfabeharfler.add("V");
alfabeharfler.add("Y");
alfabeharfler.add("Z");
for(i = 0; i < alfabebutonlar.size(); i++){
alfabebutonlar.get(i).setOnClickListener ( new View.OnClickListener () {
public void onClick(View alfabebutonv){
startActivity(getIntent().putExtra("harf", alfabeharfler.get(i)));
}
});
}
But when I click in button B I get this error (log):
java.lang.IndexOutOfBoundsException: Invalid index 29, size is 29
The logs:
java.lang.IndexOutOfBoundsException: Invalid index 29, size is 29
E/AndroidRuntime( 4367): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
E/AndroidRuntime( 4367): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
E/AndroidRuntime( 4367): at android.app.ActivityThread.access$800(ActivityThread.java:151)
E/AndroidRuntime( 4367): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
E/AndroidRuntime( 4367): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 4367): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 4367): at android.app.ActivityThread.main(ActivityThread.java:5254)
E/AndroidRuntime( 4367): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 4367): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 4367): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/AndroidRuntime( 4367): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
E/AndroidRuntime( 4367): Caused by: java.lang.IndexOutOfBoundsException: Invalid index 29, size is 29
E/AndroidRuntime( 4367): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
E/AndroidRuntime( 4367): at java.util.ArrayList.get(ArrayList.java:308)
E/AndroidRuntime( 4367): at com.example.xxx.xxx.alfabe.onCreate(alfabe.java:241)
E/AndroidRuntime( 4367): at android.app.Activity.performCreate(Activity.java:5990)
E/AndroidRuntime( 4367): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/AndroidRuntime( 4367): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
E/AndroidRuntime( 4367): ... 10 more
I added onClickListener to all buttons in for loop for saving code. I think I get an error because in for loop.
EDIT:
I added this line in loop: final int index = i; I writed index to i. And the problem was resolved.
I hope you understand.