无法检查 AlertDialog.Builder 中 EditText 的值

发布于 2024-10-05 18:41:10 字数 1625 浏览 3 评论 0原文

我试图检查 AlertDialog.Builder 中 EditText 的值,以便防止用户在 EditText 中输入任何内容。

由于某种原因,当我使用下面的代码时,它永远不会进入 if (mEditText.getText() == null || test == "") 语句,它总是执行 else 语句。

有什么想法吗?谢谢各位。

    @Override
    protected Dialog onCreateDialog(int id) {

        LayoutInflater factory = LayoutInflater.from(mContext);
        final View textEntryView = factory.inflate(R.layout.file_save_dialog, null);
        mEditText = (EditText) textEntryView.findViewById(R.id.file_name_edit);
        final Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); 

        return new AlertDialog.Builder(mContext)
            .setIcon(android.R.drawable.ic_menu_save)
            .setTitle(R.string.file_name_title)
            .setView(textEntryView)
            .setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    String test = mEditText.getText().toString();

                    //This if never works...it always hits the else statement
                    if (mEditText.getText() == null || test == "") {
                        mEditText.startAnimation(shake);
                    }
                    else {
                        finish();
                    }

                }
            })
            .setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    finish();
                }
            })
            .create();
    }

I'm trying to check the value of the EditText inside my AlertDialog.Builder so that I can prevent the user from entering nothing in the EditText.

For some reason when I use the code below it never gets into the if (mEditText.getText() == null || test == "") statement, it always executes the else statement instead.

Any ideas? Thanks folks.

    @Override
    protected Dialog onCreateDialog(int id) {

        LayoutInflater factory = LayoutInflater.from(mContext);
        final View textEntryView = factory.inflate(R.layout.file_save_dialog, null);
        mEditText = (EditText) textEntryView.findViewById(R.id.file_name_edit);
        final Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); 

        return new AlertDialog.Builder(mContext)
            .setIcon(android.R.drawable.ic_menu_save)
            .setTitle(R.string.file_name_title)
            .setView(textEntryView)
            .setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    String test = mEditText.getText().toString();

                    //This if never works...it always hits the else statement
                    if (mEditText.getText() == null || test == "") {
                        mEditText.startAnimation(shake);
                    }
                    else {
                        finish();
                    }

                }
            })
            .setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                    finish();
                }
            })
            .create();
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

毁虫ゝ 2024-10-12 18:41:10

按照Android方式进行:

if (TextUtils.isEmpty(mEditText.getText()) {
    mEditText.startAnimation(shake);
} else {
    finish();
}

Do it in the Android way:

if (TextUtils.isEmpty(mEditText.getText()) {
    mEditText.startAnimation(shake);
} else {
    finish();
}
情绪操控生活 2024-10-12 18:41:10

这样说

if (test == null || test.length() <= 0) {
    mEditText.startAnimation(shake);
}
else {
    finish();
}

put it like this

if (test == null || test.length() <= 0) {
    mEditText.startAnimation(shake);
}
else {
    finish();
}
素衣风尘叹 2024-10-12 18:41:10

如果您想比较两个字符串值,请使用方法equals()

例如:

stringOne.equals(stringTwo);

If you want compare two String values, use method equals().

For example:

stringOne.equals(stringTwo);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文