마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼에 문제가 있어 문의를 드립니다.

0 추천
back = (Button) findViewById(R.id.back);
        back.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				if(pass_sum.length() == 1) {
					pass_sum = null;
					Pass_Check();
				} else if(pass_sum.length() == 2) {
					pass_sum = pass_num_1;
					Pass_Check();
				} else if(pass_sum.length() == 3) {
					pass_sum = pass_num_1 + pass_num_2;
					Pass_Check();
				} else if(pass_sum.length() == 4) {
					pass_sum = pass_num_1 + pass_num_2 + pass_num_3;
					Pass_Check();
				} 
				
        	}
        });

버튼을 누르면 하나씩 지워지는 소스 입니다.

4개의 숫자가 줄어들면서 3개 2개 1개 마지막엔 null 값을 넣습니다.

그런데 그 뒤에 한번 더 누르면 튕기네요...

아래는 로그캣입니다.

02-12 21:31:53.630: E/AndroidRuntime(30419): FATAL EXCEPTION: main
02-12 21:31:53.630: E/AndroidRuntime(30419): java.lang.NullPointerException
02-12 21:31:53.630: E/AndroidRuntime(30419): at project.star_note.Pass_Word$11.onClick(Pass_Word.java:130)
02-12 21:31:53.630: E/AndroidRuntime(30419): at android.view.View.performClick(View.java:4427)
02-12 21:31:53.630: E/AndroidRuntime(30419): at android.view.View$PerformClick.run(View.java:18307)
02-12 21:31:53.630: E/AndroidRuntime(30419): at android.os.Handler.handleCallback(Handler.java:725)
02-12 21:31:53.630: E/AndroidRuntime(30419): at android.os.Handler.dispatchMessage(Handler.java:92)
02-12 21:31:53.630: E/AndroidRuntime(30419): at android.os.Looper.loop(Looper.java:137)
02-12 21:31:53.630: E/AndroidRuntime(30419): at android.app.ActivityThread.main(ActivityThread.java:5279)
02-12 21:31:53.630: E/AndroidRuntime(30419): at java.lang.reflect.Method.invokeNative(Native Method)
02-12 21:31:53.630: E/AndroidRuntime(30419): at java.lang.reflect.Method.invoke(Method.java:511)
02-12 21:31:53.630: E/AndroidRuntime(30419): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
02-12 21:31:53.630: E/AndroidRuntime(30419): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
02-12 21:31:53.630: E/AndroidRuntime(30419): at dalvik.system.NativeStart.main(Native Method)
 
Android초보개발자 (1,230 포인트) 님이 2015년 2월 12일 질문

2개의 답변

0 추천

아마도 Pass_Check() 메소드에서 튕길것으로 보여지네요

그 소스도 올려보심이...

nicehee (73,100 포인트) 님이 2015년 2월 12일 답변
0 추천
pass_sum 에 null 할당하니까
pass_sum.length 가 nullpointer 가 뜰꺼같네요
if (pass_sum == null)
    return;

이런식으로 처리하심 안튕길껍니다
mamondebaltob (32,750 포인트) 님이 2015년 2월 13일 답변
...