当前位置: 首页 > 面试题库 >

单击“中性”按钮后能否保持对话框打开?

涂玉韵
2023-03-14
问题内容

我有一个带有3个EditText的对话框,可用来获取ftp地址,用户名和密码。我使用.setNeutralButton创建一个“测试连接”按钮。我设法将其连接到ftp并显示结果吐司,但我不希望“测试按钮”关闭对话框。在连接测试期间如何保持对话框打开?

livePreviewChk.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        LinearLayout lila1 = new LinearLayout(NewSite.this);
        lila1.setOrientation(1); // 1 is for vertical orientation

        final EditText serverName = new EditText(NewSite.this);
        serverName.setHint("Server name");

        final EditText serverAddress = new EditText(NewSite.this);
        serverAddress.setHint("Server Address");

        final EditText username = new EditText(NewSite.this);
        username.setHint("Username:");

        final EditText password = new EditText(NewSite.this);
        password.setHint("Password");

        AlertDialog.Builder alt_bld = new AlertDialog.Builder(
                NewSite.this);
        alt_bld.setIcon(R.drawable.ftpicon);
        alt_bld.setTitle("Enter the login details for the host FTP")
                .setCancelable(true)
                .setPositiveButton("Save",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                }
                            }
                        })
                .setNeutralButton("Test Connection",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                FTPConnector testConnection = new FTPConnector();
                                boolean status = testConnection
                                        .ftpConnect(host, user, pass,
                                                port);
                                if (status == true) {
                                    connectionSuccessfull = true;
                                } else {
                                    connectionSuccessfull = false;
                                }
                            }
                        })
                .setNegativeButton("Cancel",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                // if this button is clicked, just close
                                // the dialog box and do nothing
                                dialog.cancel();
                            }
                        });

        lila1.addView(serverName);
        lila1.addView(serverAddress);
        lila1.addView(username);
        lila1.addView(password);

        AlertDialog alert = alt_bld.create();
        alert.setView(lila1);
        alert.show();
    }
});

问题答案:

据我所知,不扩展Dialog类是不可能的。但是,使用您拥有的功能,将其单独放置Activity并使用可能会更容易,更好Dialogtheme。您所要做的就是Activity为此将代码放入新代码中,并在manifest使用中dialog theme

<activity
        android:name="com.your.package.YourClassName"
        android:label="YOurLabel"
        android:theme="@android:style/Theme.Dialog" >
</activity>

这将使一段Dialog时间的外观和感觉独立存在Activity

这是扩展Dialog的答案。我没有仔细研究过所有内容,但是如果您选择此选项,它可能会满足您的需求。



 类似资料:
  • 我有一个按钮(CustomDilaog活动),当点击显示自定义对话框和密码编辑文本,确定按钮和取消按钮时,如果你输入正确的密码,它会打开另一个活动(文本活动),直到现在一切正常, 我有两个部分的问题。 第一部分:当我在(文本活动)并按后退按钮返回(CustomDilaog活动)时,仍然对话框显示在它上面,如何让它关闭 第二部分:对话框启动后,如果我不写密码,只需单击“确定”按钮,edittext为

  • 当用户单击返回按钮时,我正在尝试退出应用程序,让它在单击是按钮时显示对话框是/否按钮,让它退出应用程序,包括注册活动,假设您在主活动上。 这是我的代码,但它不工作 单击主活动上的“后退”按钮时 如何从主活动退出应用程序,包括在是按钮单击对话框上的注册活动

  • 问题内容: 我正在使用 selenium2 beta 。我试图单击按钮,这将打开文件附件对话框。但是当我单击它时,什么也没有发生。 仅使用selenium而不是selenium2我可以轻松单击它。 问题答案: 我猜问题只是在使用Internet Explorer时出现,因为IE和FF处理文件输入略有不同:在FF中,您可以单击按钮或字段以调用“打开”对话框,而在IE中,您可以单击按钮或 双击单击 该

  • 问题内容: 我有一个EditText用于输入的对话框。当我单击对话框上的“是”按钮时,它将验证输入,然后关闭对话框。但是,如果输入错误,我希望保留在同一对话框中。每次无论输入什么,当我单击“否”按钮时,都应自动关闭对话框。如何禁用此功能?顺便说一句,我在对话框上的按钮上使用了PositiveButton和NegativeButton。 问题答案: 编辑:这仅在API 8+上有效,如某些注释所述。

  • 按钮处理程序: 类ButtonHandler实现ActionListener{public void actionPerformed(ActionEvent e){

  • 问题内容: 我正在尝试在应用程序中实现一项功能,当互联网连接不可用时会显示警报。该警报具有两个操作(“确定”和“设置”),每当用户单击设置时,我都希望以编程方式将其设置为电话设置。 我正在使用Swift和Xcode。 问题答案: 使用 Swift 5.1更新 斯威夫特4.2