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

커스텀 다이얼로그에서 확인 버튼을 누를 때!

+1 추천

커스텀 다이얼로그를 띄워서 editText에 값을 입력하고

확인/취소등으로 입력한 값을 넘겨주는 것을 만들고 있습니다.

일단 editText에 값을 입력 한 후, 확인 버튼을 누르면 넘기는 것은 구현했습니다.

확인 버튼을 눌렀을 때, editText의 값이 null인지 아닌지를 구별하여 확인버튼을 막고 싶은데,

이런 경우에는 어떻게 해야 하는지요?

 

현재는 이런식으로 구현했습니다.

dialog.setButton3("확인", new DialogInterface.OnClickListener() {
 
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
   //처리할 행동
 
}
});
anci (19,950 포인트) 님이 2014년 3월 4일 질문
anci님이 2014년 3월 4일 수정
확인이 눌렸을 때 null을 체크해서 막는 방법은 안되나요?

1개의 답변

+1 추천
 
채택된 답변
"확인 버튼을 눌렀을 때, editText의 값이 null인지 아닌지를 구별하여 확인버튼을 막고 싶은데" 라고 하시면

시점이 살짝 애매하네요. 눌렀을 때 버튼이 disable로 변하니까...

내용이 없으면 유저가 못 누르게 하고 싶으시다는 거 같은데 'ㅅ';;

 

음.. 쉽게 생각했을땐 (다이얼로그가 아닌 액티비티 환경일 때)

editText 의 객체를 받아올수 있다는 가정하에 에디트텍스트체인지리스너를 써서

버튼 상태를 바꿔주시면 될거같아요

아니면 버튼 클릭시 온클릭 이벤트안에 try catch 문을 쓰시면 되지용~

조건은 et.getText 값을 읽어서 널이면 버튼 디스에이블하고 토스트 띄우고

내용이 있으면 전송하시면 되고
초보개발자ㅠ (33,870 포인트) 님이 2014년 3월 4일 답변
anci님이 2014년 3월 4일 채택됨
답변 감사합니다! editText가 null일 때 확인이 비활성화 되는 것도 좋고,
눌리더라도 다이얼로그 창이 닫히지만 않으면 됩니다 ..ㅠ
지금은 값이 없어도 확인을 누르면 닫히는 상황이라..if문으로 나눈다고해도, 닫히지 않는 기능을 어떻게 구현해야 하는지 찾고있었습니다 :)
http://fimtrus.tistory.com/63

이런 게 있네요? ㅎㅎ onShowListener()
주먹밥님의 다이얼로그가 어떤 형태인지 잘 모르겠지만
참고해보세요 ^^;;

final AlertDialog alertDlg = new AlertDialog.Builder(this)
    .setTitle("경고창")
    .setMessage("Activity를 Pause시킨다")
    .setPositiveButton("Close", new  DialogInterface.OnClickListener() {
        @Override
    public void onClick(DialogInterface dialog, int which) {

                }
    }).create();

    // 객체 생성 후에~ 리스너 추가.
    alertDlg.setOnShowListener(new DialogInterface.OnShowListener() {
        @Override
        public void onShow(DialogInterface dialog) {
            Button posBtn = alertDlg.getButton(AlertDialog.BUTTON_POSITIVE);
            posBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getBaseContext(), "짠?!?!", Toast.LENGTH_SHORT).show();
                    // 여기서 조건에 따라 처리
          alertDialog.dismiss() 를 호출
          }
              });
         }
});

// 다이얼로그 호출~
 alertDlg.show();
감사합니다~ 사실 어제 찾았던 .. 그 블로근데 , 제가 제대로 활용을 못했었네요 ㅠㅠ 다시 살펴보고, 해결했습니다! 도움주셔서 감사해요~!
...