2014-06-16 2 views
5

두 개의 단추, 취소 및 양수 단추가있는 사용자 정의 AlertDialog를 설정하려고합니다. 긍정적 인 버튼을 클릭하면 텍스트를 변경할 수 있고 대화 상자를 닫을 필요가 없습니다.AlertDialog가 + 단추로 닫히지 않도록하십시오.

거친 흐름은 "보내기"라고 말합니다. 클릭하면 "보내는 중 ..."으로 바뀌고 코드는 우리 서버에 일부 데이터를 보내고 응답이 사실이면 닫습니다. 대화 상자, 틀리거나 시간 초과 등의 오류 메시지 (토스트)를 표시하고 대화 상자를 열어 두십시오.

서버에 데이터를 보내고 응답을 처리하는 코드가 있습니다. AlertDialog 클래스를 편집하는 방법을 생각하면이 방법을 구현할 수 없습니다. 아무도 내가이 일을 어떻게하는지 알지 못해?

현재 테스트 코드 :

AlertDialog.Builder b = new AlertDialog.Builder(getActivity()); 
b.setView(getActivity().getLayoutInflater().inflate(R.layout.dialog_single_text, null)); 
b.setTitle("Forgotten Password"); 
b.setMessage("Please enter your email"); 
b.setPositiveButton("Send", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     Toast.makeText(getActivity(), "Sending...", Toast.LENGTH_SHORT).show(); 
    } 
}); 
b.create().show(); 
+0

가 ..... – Rohit

+0

이 코드를 게시하시기 바랍니다 코드에 AlertDialog에 onShowListener을 추가 할 수 있습니다 ...... –

+0

먼저 당신이 경고 대화 상자에 지정된 않은 것을 볼 – Boopathi

답변

7

당신이

d.setOnShowListener(new DialogInterface.OnShowListener() { 

    @Override 
    public void onShow(DialogInterface dialog) { 

     Button b = d.getButton(AlertDialog.BUTTON_POSITIVE); 
     b.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       // TODO Do something 

       //Dismiss once everything is OK. 
       d.dismiss(); 
      } 
     }); 
    } 
}); 
+3

DialogInterface.getButton()은 더 이상 존재하지 않습니다. – axd

0

당신이 그것을 무시해야합니다 AlertDialog를 들어 안드로이드 LINK

  • 에서 제공 Dialog API를 사용하여이

    1. 를 사용하여 사용자 정의 대화 상자를 달성하기 위해 두 가지 방법이 있습니다 이에 대한 설명은 LINK
  • +0

    을 온 클릭 @TomHart 당신은해야합니다 코드 어딘가에 'dialog.dismiss()'또는'dialog.cancel()'을 사용하십시오. – CodeWarrior

    +0

    @TomHart 업데이트 된 답변 – CodeWarrior

    관련 문제