티스토리 뷰
Dialog EditText
Dexx 2016. 7. 27. 00:53Custom Dialog를 통해 EditText에서 내용을 받을려고 구현을 했는데 어찌된 것인지 java.lang.NullPointerException을 막 뿜어 댄다.
분명히 구현된 부분에 이상은 없는데 도통 알 수가 없는 상황이었다.
구글신께 여쭤보니 문제는 Activity를 상속 받도록 한 것에 있었다.
inputLink = (EditText) findViewById(R.id.inputLink);
이놈이 부모 Activity를 상송받는 형태로 되어 있어서 다이얼로그에서는 값을 받지 못하고 NullPointException을 내는 것이었다.
Custom 다이얼로그를 위해 캐스팅한 View를 상속받도록
inputLink = (EditText) dialogView.findViewById(R.id.inputLink);
로 변경해주면 끝~
private void showAttachLinkDialog() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(this, android.R.style.Theme_DeviceDefault_Light));
LayoutInflater inflater = this.getLayoutInflater();
View dialogView = inflater.inflate(R.layout.include_writing_link_custom_dialog, null);
alertDialogBuilder.setView(dialogView);
inputLink = (EditText) dialogView.findViewById(R.id.inputLink);
alertDialogBuilder.setTitle("관련링크");
alertDialogBuilder
.setPositiveButton(getString(R.string.dialog_ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d(TAG, "받은 URL : " + inputLink.getText().toString().trim());
}
})
.setNegativeButton(getString(R.string.dialog_cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.setCanceledOnTouchOutside(true);
alertDialog.show();
}
'Android 개발 메모' 카테고리의 다른 글
IOS 아이콘 사이즈 (0) | 2017.04.04 |
---|---|
String 내 Html스타일 제거 (0) | 2016.07.05 |
TextView에 들어 있는 HTML 링크 처리 (0) | 2016.06.28 |