Saturday 15 September 2012

java - Can I use array reference at setOnClickListener(new OnClick(){}); -



java - Can I use array reference at setOnClickListener(new OnClick(){}); -

i coding android application, , ended sec activity.

public class oneboardactivity extends activity { //omitted @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_board); turn=true; statetext=(textview)findviewbyid(r.id.statetext); mover[0][2]=(button)findviewbyid(r.id.mover13); mover[0][3]=(button)findviewbyid(r.id.mover14); mover[0][4]=(button)findviewbyid(r.id.mover15); //omitted 1 time again for(i=0;i<7;i++){ for(j=0;j<7;j++){ if(i<=1 && j<=1 || i>=6 && j<=1 || i<=1 && j>=6 || i>=6 && j>=6){ moverstate[i][j]=-2; continue; } mover[i][j].setonclicklistener(new onclicklistener(){ //line 92 @override public void onclick(view v) { // todo move state movebystate(i,j); } }); //omitted lastly time

...and code ended without syntax errors. but, when ran application , got activity out, application resulted "unfortunately, ..." error.

this logcat:

10-16 04:09:56.641: e/androidruntime(1230): fatal exception: main 10-16 04:09:56.641: e/androidruntime(1230): process: com.truefalseapps.solitaire, pid: 1230 10-16 04:09:56.641: e/androidruntime(1230): java.lang.runtimeexception: unable start activity componentinfo{com.truefalseapps.solitaire/com.truefalseapps.solitaire.oneboardactivity}: java.lang.nullpointerexception 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activitythread.performlaunchactivity(activitythread.java:2195) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2245) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activitythread.access$800(activitythread.java:135) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activitythread$h.handlemessage(activitythread.java:1196) 10-16 04:09:56.641: e/androidruntime(1230): @ android.os.handler.dispatchmessage(handler.java:102) 10-16 04:09:56.641: e/androidruntime(1230): @ android.os.looper.loop(looper.java:136) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activitythread.main(activitythread.java:5017) 10-16 04:09:56.641: e/androidruntime(1230): @ java.lang.reflect.method.invokenative(native method) 10-16 04:09:56.641: e/androidruntime(1230): @ java.lang.reflect.method.invoke(method.java:515) 10-16 04:09:56.641: e/androidruntime(1230): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 10-16 04:09:56.641: e/androidruntime(1230): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 10-16 04:09:56.641: e/androidruntime(1230): @ dalvik.system.nativestart.main(native method) 10-16 04:09:56.641: e/androidruntime(1230): caused by: java.lang.nullpointerexception 10-16 04:09:56.641: e/androidruntime(1230): @ com.truefalseapps.solitaire.oneboardactivity.oncreate(oneboardactivity.java:92) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activity.performcreate(activity.java:5231) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1087) 10-16 04:09:56.641: e/androidruntime(1230): @ android.app.activitythread.performlaunchactivity(activitythread.java:2159) 10-16 04:09:56.641: e/androidruntime(1230): ... 11 more

does mean can't utilize array reference @ setonclicklistener(new onclick(){}); ? if can, npe come from?

they many cases mover[i][j] null

button mover[][] = new button[7][7]; int = 0; int j = 0; for(i=0;i<7;i++) { for(j=0;j<7;j++) { if(i<=1 && j<=1 || i>=6 && j<=1 || i<=1 && j>=6 || i>=6 && j>=6) { continue; } system.out.println("setting mover["+i+"]["+j+"]"); } }

it's giving

setting mover[0][2] setting mover[0][3] setting mover[0][4] setting mover[0][5] setting mover[1][2] setting mover[1][3] setting mover[1][4] setting mover[1][5] setting mover[2][0] setting mover[2][1] setting mover[2][2] setting mover[2][3] setting mover[2][4] setting mover[2][5] setting mover[2][6] setting mover[3][0] setting mover[3][1] setting mover[3][2] setting mover[3][3] setting mover[3][4] setting mover[3][5] setting mover[3][6] setting mover[4][0] setting mover[4][1] setting mover[4][2] setting mover[4][3] setting mover[4][4] setting mover[4][5] setting mover[4][6] setting mover[5][0] setting mover[5][1] setting mover[5][2] setting mover[5][3] setting mover[5][4] setting mover[5][5] setting mover[5][6] setting mover[6][2] setting mover[6][3] setting mover[6][4] setting mover[6][5]

however, setting these 3

mover[0][2]=(button)findviewbyid(r.id.mover13); mover[0][3]=(button)findviewbyid(r.id.mover14); mover[0][4]=(button)findviewbyid(r.id.mover15);

when mover[0][5] happens, throws nullpointerexception

java android

No comments:

Post a Comment