android - 停止 AlertDialog 在单击肯定按钮时关闭

标签 android

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

粗略的流程是肯定的按钮会说“发送”,当它被点击时它会变成“正在发送...”,然后代码会发送一些数据到我们的服务器,如果响应为真,关闭对话框,如果它为假,或超时等显示错误消息 (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();

最佳答案

你可以给 AlertDialog 添加一个 onShowListener

 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();
            }
        });
    }
});

关于android - 停止 AlertDialog 在单击肯定按钮时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24244096/

相关文章:

java - Libgdx 在屏幕中使用 InputMultiplexer 覆盖 keyDown

Android - Activity Home/向上箭头在 SDK 24 中有额外的填充/边距

php - 将数据解析为从 000webhost.com 返回的 JSON 对象时出错

java - 在模拟器上运行但不能在设备上运行的 Android 套接字应用程序

android - 如何在 Android 中的 ViewPager 之后转到下一个 Activity ?

android - 如何引导用户单击 View ?

android如何旋转 Canvas 矩形

android - 解析Android getUsername() "ParseObject has no data for this key"

android - PhoneStateListener onSignalStrengthsChanged 停止在服务中被调用

android - Corona sdk 应用程序在模拟器上运行良好,但上传到 Droid 时运行不佳