2014-10-01 1 views
0

AlertDialog이 작동하지 않습니다. 응용 프로그램이 시작될 때 종료됩니다.경고 대화 상자가 작동하지 않습니다. 시작시 강제 종료

Button btn_disclaimer = (Button) findViewById(R.id.btn_disclaimer); 
    btn_disclaimer.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MyActivity.this); 
      alertDialogBuilder.setTitle("DISCLAIMER"); 
      alertDialogBuilder 
        .setMessage("TEST123") 
        .setNegativeButton("Okay", new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, int id) { 
            dialog.cancel(); 

           } 
          }); 

      AlertDialog alertDialog = alertDialogBuilder.create(); 
      alertDialog.show(); 


     } 
    }); 

무엇이 잘못 되었나요?

import android.app.AlertDialog; 
import android.content.DialogInterface; 

난 그냥 몇 가지 간단한 애플리케이션을 생성, 안드로이드에 새로운 해요 : 나는이 녀석을 수입했다.

java.lang.RuntimeException: Unable to start activity ComponentInfo{gd.mkp.jd.de.gymnasiumdamme/gd.mkp.jd.de.gymnasiumdamme.MyActivity}: java.lang.NullPointerException 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2216) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265) 
      at android.app.ActivityThread.access$800(ActivityThread.java:145) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:136) 
      at android.app.ActivityThread.main(ActivityThread.java:5140) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
      at gd.mkp.jd.de.gymnasiumdamme.MyActivity.onCreate(MyActivity.java:279) 
      at android.app.Activity.performCreate(Activity.java:5231) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2170) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2265) 
            at android.app.ActivityThread.access$800(ActivityThread.java:145) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:136) 
            at android.app.ActivityThread.main(ActivityThread.java:5140) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611) 
            at dalvik.system.NativeStart.main(Native Method) 
+1

logcat에서 전체 스택 추적을 게시하십시오. – Karakuri

+0

'DialogInterface.OnClickListener'가 필요 없으며 사용자가 'Ok'를 클릭하면 'null'을 전달할 수 있고 대화 상자를 닫을 수 있습니다. – Karakuri

+2

'onCreate에 NPE가 있습니다.)'(line # 279)가 아니라 onClick()에있다. 아마도'btn_disclaimer'는 null입니다. 장래에 stacktraces를 외부 pastebins이나 그림이 아닌 질문에 직접 텍스트로 게시하십시오. – laalto

답변

0

내게는 btn_disclaim 개체가 null 인 것 같습니다. 이유 : findViewById (R.id.btn_disclaimer)를 수행 할 때 잘못된 ID를 사용합니다. 이유 :

1) findViewById (R.id.btn_disclaimer)를 수행 할 때 잘못된 ID를 사용합니다. 참조하려는 버튼에 실제로이 ID가 있는지 확인하십시오.

2) 참조하려는 버튼 XML 레이아웃이 실제로이 활동으로로드중인 XML 레이아웃에 없습니다. ID가 존재하기 때문에 앱을 컴파일 할 수 있지만 존재하는 뷰는 setContentView (R.layout.whatever_your_activity_layout_is)를 사용하여로드하는 뷰가 아닙니다. 올바른 레이아웃을로드했는지 확인하거나 단추 레이아웃이이 활동에 대해로드 한 레이아웃에 실제로 정의되어 있는지 확인하십시오.

관련 문제