2014-06-16 19 views
5

Tôi đang cố thiết lập AlertDialog tùy chỉnh, có 2 nút, hủy và nút tích cực. Tôi cần phải làm cho nó như vậy những gì các nút tích cực được nhấp vào, tôi có thể thay đổi văn bản, và không có hộp thoại gần.Dừng AlertDialog khi đóng trên nút tích cực, nhấp vào

Luồng thô là nút dương sẽ cho biết "Gửi", khi được nhấp vào nút sẽ chuyển thành "Đang gửi ...", sau đó mã sẽ gửi một số dữ liệu đến máy chủ của chúng tôi và nếu phản hồi là đúng, hãy đóng hộp thoại, nếu đó là sai, hoặc timeouts vv hiển thị một thông báo lỗi (Toast) và giữ cho hộp thoại mở.

Tôi có mã để gửi dữ liệu đến máy chủ, xử lý câu trả lời, v.v. Tôi không thể nghĩ cách chỉnh sửa lớp AlertDialog thực hiện việc này. Có ai biết tôi sẽ làm thế nào không?

thử nghiệm mã hiện tại:

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

đang xin vui lòng ..... – Rohit

+0

gửi mã của bạn ...... –

+0

Đầu tiên xem những gì bạn đã quy định trong hộp thoại cảnh báo onclick – Boopathi

Trả lời

7

bạn có thể thêm một onShowListener đến AlertDialog

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() không còn tồn tại nữa. – axd

0

Có hai phương pháp để thực hiện hộp thoại tùy chỉnh

  1. Sử dụng này bằng cách sử dụng Dialog API cung cấp bởi android LINK
  2. Đối AlertDialog bạn sẽ cần phải ghi đè nó như được giải thích về điều này LINK
.210
+0

@TomHart Bạn phải đang sử dụng 'dialog.dismiss()' hoặc 'dialog.cancel()' ở đâu đó trong mã – CodeWarrior

+0

@TomHart Câu trả lời được cập nhật – CodeWarrior

Các vấn đề liên quan