우선 코드입니다.
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewInDialog = inflater.inflate(R.layout.categoryadddialogview, null);
final AlertDialog ad = new AlertDialog.Builder(CheckList.this).setView(viewInDialog).create();
ad.setTitle("카테고리 추가");
ad.show();
이처럼 ad 라는 AlertDialog 안에 categoryadddialogview 라는 레이아웃을 넣었습니다.
categoryadddialogview 레이아웃에는
<Button
android:id="@+id/addCategoryBtnCancel"
... />
이렇게 버튼이 있구요
이 버튼에 리스너를 넣기 위에 아래와 같이 하였습니다.
Button cancel = (Button) findViewById(R.id.addCategoryBtnCancel);
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ad.dismiss();
}
});
근데 setOnClickListener하는 라인에서 null pointer exception오류가 나네요.
아무래도 다이얼로그 안에 있는 layout 안의 버튼을 저렇게 직접 아이디로 접근하는게 아닌거 같은데..
이런 경우에는 어떻게 버튼에 리스너를 넣을 수 있을까요?



