2010/08/29 18:30

AlertDialog의 EditText에서 text값 가져오기. 안드로이드

AlertDialog 의 EditText에서 문자열을 가져오는데

버튼을 클릭하면 에러가 발생한다. 

구글링 검색결과 findViewById를 dialog에서 하지 않고 activity에서 하고 있기 때문이란다.
You are doing the findViewById() on the *activity*, not the dialog.Call findViewById() on the dialog's content instead.
그래서 inflate시키는 뷰의 findByViewId를 이용하여 EditText id를 찾아서 실행시키니 

에러 없이 잘 실행된다.

- 관련 코드 -

AlertDialog.Builder aDialog = new AlertDialog.Builder(this);
aDialog.setTitle("타이틀");
aDialog.setView(layout);

final EditText eName = (EditText)layout.findViewById(R.id.edit_name);
aDialog.setPositiveButton("확인", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
tName.setText(eName.getText().toString());
}
});

덧글

  • 일단달려 2010/09/01 22:02 # 삭제 답글

    저도 다이얼로그에서 버튼 클릭에 두었다가 같은 현상으로 찾고 있었는데
    감사합니다 ^^
  • 김곰 2012/01/23 22:49 # 삭제 답글

    5시간 삽질하다가 하이큐님 덕분에 해결했네요 ㅠ 감사합니다 ㅠ
  • ㅠㅠ 2013/01/05 09:32 # 삭제 답글

    완전사랑해요
  • 아이스카페라떼 2013/04/01 00:50 # 삭제 답글

    완전결혼해주세요
  • 학생 2014/12/09 21:33 # 삭제 답글

    브라보! 브라보!
  • 감사합니다 2016/02/23 05:24 # 삭제 답글

    와 덕분에 하루종일 삽질하다가 깨닫고갑니다!
  • 삽질한드래곤썬 2017/05/23 20:24 # 삭제 답글

    감사합니다
  • 알러뷰 2017/10/22 18:08 # 삭제 답글

    하이큐님 감사합니다 덕분에 해결했네요 군대 이후로 이렇게 삽을 많이 퍼본적이 처음인데
    하이큐님이 달콤한 과업 종료를... ㅠ 진짜 바보였네요 왜 activity에서 했을까 ... dialog인데!
    같은 구글링을 해도 이렇게 다르구나 클라스가 이렇게 다르구나..
댓글 입력 영역


whos.amung.us 통계