벌써 세번째글올리네요
만들면서 오류투성이..
edittext가 있는 엑티비티에서 뒤로가기 키를눌렀는데 이전엑티비티로 이동이될줄알았습니다 그런데 런타임오류가나더라구요
그래서 뒤로가기키를 누르면 해당엑티비티는 종료되도록 만들었습니다
해당엑티비티가종료되면 자동으로 이전엑티비티는 계속 실행중이니 이전엑티비티가 보여질테니까요
그래서 소스를짜봤습니다
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
finish();
}
return false;
}
하지만 막상 뒤로가기 키를누르니 또 런타임오류가뜹니다
그래서 이번엔
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
intent = new Intent(B.this, A.class);
startActivity(intent);
finish();
}
return true;
}
이렇게 해봤습니다
이전클래스인(A)로 넘어가면서 해당클래스(B)는 종료가됩니다
하지만 그후 A클래스에서 뒤로가기버튼을누르면 A클래스가 마지막이라 A클래스가종료되면서 앱이종료된듯한현상을 보여야하는데
또 런타임오류가나버리네요
어디서부터 손을대야할지 막막합니다..
08-15 20:24:49.586: V/AudioManager(21405): [getRingerMode]
08-15 20:25:08.256: D/AndroidRuntime(21405): (L=1418):Shutting down VM
08-15 20:25:08.256: W/dalvikvm(21405): (L=1742):threadid=1: thread exiting with uncaught exception (group=0x40018578)
08-15 20:25:08.256: E/AndroidRuntime(21405): FATAL EXCEPTION: main
08-15 20:25:08.256: E/AndroidRuntime(21405): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {TN.app/TN.app.Notepadv2}: java.lang.NullPointerException
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.ActivityThread.deliverResults(ActivityThread.java:2547)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2589)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.ActivityThread.access$2000(ActivityThread.java:120)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:976)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.os.Handler.dispatchMessage(Handler.java:99)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.os.Looper.loop(Looper.java:130)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.ActivityThread.main(ActivityThread.java:3698)
08-15 20:25:08.256: E/AndroidRuntime(21405): at java.lang.reflect.Method.invokeNative(Native Method)
08-15 20:25:08.256: E/AndroidRuntime(21405): at java.lang.reflect.Method.invoke(Method.java:507)
08-15 20:25:08.256: E/AndroidRuntime(21405): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
08-15 20:25:08.256: E/AndroidRuntime(21405): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
08-15 20:25:08.256: E/AndroidRuntime(21405): at dalvik.system.NativeStart.main(Native Method)
08-15 20:25:08.256: E/AndroidRuntime(21405): Caused by: java.lang.NullPointerException
08-15 20:25:08.256: E/AndroidRuntime(21405): at TN.app.Notepadv2.onActivityResult(Notepadv2.java:162)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.Activity.dispatchActivityResult(Activity.java:3909)
08-15 20:25:08.256: E/AndroidRuntime(21405): at android.app.ActivityThread.deliverResults(ActivityThread.java:2543)
08-15 20:25:08.256: E/AndroidRuntime(21405): ... 11 more
입니다
에러 로그를 보시면 NullPointerException 납니다.
08-15 20:25:08.256: E/AndroidRuntime(21405): Caused by: java.lang.NullPointerException
08-15 20:25:08.256: E/AndroidRuntime(21405): at TN.app.Notepadv2.onActivityResult(Notepadv2.java:162)
저기 저 라인에 문제가 있는 듯 한데요.
종료되는 액티비티에서 결과값을 리턴하지 않는데, Notepadv2 인가에서 결과값 처리하려다 죽는게 아닌가 생각됩니다만 (구조가 어떻게 되는지 몰라서..)
암튼, 에러 로그를 보시고, 디버깅 해 보세요.
그냥 뒤로가기 키가 에러가나니까 뒤로가기버튼을 클릭해도 아무반응없도록만들고
자체적으로 뒤로가기 버튼을 xml에 추가해서 그 버튼에 finish();를주니 모든게잘돌아가네요
이런이런..
에러 로그를 올려 주시는 것이 나을 듯 합니다.
어디서 어떤 오류가 나는지 알 수가 없으니까요..