android - AlertDialog EditText 输入验证不起作用

标签 android if-statement dialog android-edittext validation

我创建了一个带有 TextEdit 作为数字输入的对话框,以将其转换为 double 值。 我想通过检查 TextEdit 输入是否为空来防止异常,但它总是跳转到 else 语句,因此在 EditText 为空时创建异常。

final Builder builder = new Builder(this);
            final EditText input = new EditText(this);
            input.setKeyListener(DigitsKeyListener.getInstance(false, true));
            builder
                .setTitle(R.string.dialog_title_addmark)
                .setMessage(R.string.dialog_addmark)
                .setView(input)
                .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        if (input.toString().trim().length() == 0) {

                            Toast.makeText(Marks.this, R.string.input_empty, Toast.LENGTH_SHORT).show();

                        } else {
                            Double value = Double.valueOf(input.getText().toString());
                            db.insertMark(selection, value);
                            getData();
                        }
                    }
                })
                .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                    }

                })
                .show();

我也试过检查 (input.toString() != null) 但这也不起作用。

谢谢你的帮助

最佳答案

如果您想要来自 EditText 对象的文本,您应该使用以下代码行:

input.getText().tostring();

其中 input 是一个 EditText 对象。

使用代码

input.toString();

将为您提供对象的字符串表示形式,只要该对象不是 null,该对象的 toString 就不会是 null,因此使用 input.toString() != null 不会给你任何有用的信息。

这意味着您应该进行以下验证:

if (input.getText().toString().trim().length() == 0) 判断输入对象是否包含一些文本。

关于android - AlertDialog EditText 输入验证不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996863/

相关文章:

java - 如何在 CRONET 中将 json 对象作为 post 请求发送?

android - Glide - 如何并行加载多个图像?

if-statement - 使用 ColdFusion 检查 Youtube ID 是否有效

android - EditText 字段不接受输入

屏幕关闭或锁定时android广播接收器?

android - 本地化示例问题

android - RecyclerView 只显示一项

view - 如何将对话框 View Controller 作为 subview 添加到 UIView 或反之亦然?

bash - "random walk"脚本的 if 条件问题

java - 为什么我的计数器不能正常计数?尽管我的 if 语句未填写,但它添加了 +1