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

다이얼로그 관련해서 , 아래와 같은 에러가 뜨는 이유를 모르겠습니다.

+2 추천

 

안녕하세요.

간단한 다이얼로그를 출력하는데 있어서 아래의 사진과 같은 에러가 뜹니다.

그런데 이유를 잘 모르겠습니다.. 사진이 잘 안보일 가능성이 있어서, 아래의 에러를 사진아래의

글로도 써보겠습니다. btn.setOnClickListener(this); 부분에 에러표시와

온클릭 안쪽의 Custom_Dialog_Thank_You Dialogg = new Custom_Dialog_Thank_You(Payment.this); 부분에

서도 에러가 떠서 이 두 부분을 가리키고 있습니다ㅡ ,. ㅡ ..

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: ex.real_project, PID: 30867
                  java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
                      at ex.real_project.Custom_Dialog_Thank_You.<init>(Custom_Dialog_Thank_You.java:23)
                      at ex.real_project.Payment$9.onClick(Payment.java:422)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:972)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

 

 

<자바부분>

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

        if (Total_Flag && Phone_Layout && Payment_Button5_Flag && Payment_Button6_Flag && Payment_Button7_Flag) {
            Toast.makeText(getApplicationContext(), "결제 완료", Toast.LENGTH_SHORT).show();
            Custom_Dialog_Thank_You Dialogg = new Custom_Dialog_Thank_You(Payment.this);
            Dialogg.show();


        }
        else{
            Toast.makeText(getApplicationContext(), "결제수단 중 한개를 선택해주세요.", Toast.LENGTH_SHORT).show();
        }

    }
});

<다이얼로그 부분 에러>

import android.app.Dialog;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;

public class Custom_Dialog_Thank_You extends Dialog implements View.OnClickListener {


    Button btn;

    public Custom_Dialog_Thank_You(Context context) {
        super(context);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_custom__dialog);

        btn = (Button) findViewById(R.id.Pay);
        btn.setOnClickListener(this);
    }

    public void onClick(View view) {
        if (view.getId() == R.id.End_Button) {
            if (isShowing()) {
                dismiss();
            }
        }
    }
}

 

비선아 (920 포인트) 님이 2016년 11월 20일 질문

1개의 답변

0 추천
 
채택된 답변
NullPointerException이네요.

크래쉬 나는 부분에 break point로 잡고 어떤 인스턴스가 null인지 확인 후에 인스턴스 초기화 부분에 잘못된 부분이 없는지 확인이 필요합니다.
Development Guy (70,570 포인트) 님이 2016년 11월 21일 답변
비선아님이 2016년 11월 26일 채택됨
...