停止AlertDialog关闭正按钮单击

TMH*_*TMH 5 android

我正在尝试设置一个自定义AlertDialog,它有2个按钮,取消和一个肯定的按钮.我需要点击正面按钮,我可以更改文本,而不是关闭对话框.

粗流是正按钮会说"发送",点击它会变为"正在发送...",然后代码会将一些数据发送到我们的服务器,如果响应为真,则关闭对话框,如果是false或timeouts等显示错误消息(Toast)并保持对话框打开.

我有代码将数据发送到服务器,处理响应等,我只是想不到如何编辑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();
Run Code Online (Sandbox Code Playgroud)

pra*_*ran 7

您可以将一个onShowListener添加到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();
            }
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

  • DialogInterface.getButton()不再存在. (4认同)