【问题标题】:how to validate text boxes in Alert Dialog box in android如何在android的警报对话框中验证文本框
【发布时间】:2016-10-25 13:19:10
【问题描述】:

我正在处理带有一些文本框的警报对话框,其中需要验证文本框,如果它们正确,则弹出消息需要消失 这里的问题是,如果用户单击确定按钮(具有空值),弹出消息就会消失。 提前谢谢...

final AlertDialog.Builder builder = new AlertDialog.Builder(KmsActivity.this);
builder.setTitle("Enter OrderId,BillNo");
builder.setCancelable(false);
final EditText input1 = new EditText(KmsActivity.this);
final EditText input2 = new EditText(KmsActivity.this);
input1.setHint("Enter OrderId");
input2.setHint("Enter BillNo");
LinearLayout linearLayout = new LinearLayout(KmsActivity.this);
linearLayout.setOrientation(LinearLayout.VERTICAL);
linearLayout.addView(input1);
linearLayout.addView(input2);
builder.setView(linearLayout);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface popupDialog, int which) {
        String orderId = input1.getText().toString();
        String billNo = input2.getText().toString();
        Log.d(TAG_NAME, "order id:" + orderId);
        Log.d(TAG_NAME, "bill no" + billNo);
        if (orderId.length()<=0) {
            Toast.makeText(KmsActivity.this, "Please enter Order ID", Toast.LENGTH_LONG).show();
        } else if (billNo.length()<=0) {
            Toast.makeText(KmsActivity.this, "Please enter Bill No", Toast.LENGTH_LONG).show();
        } else {
            tripObjects.get(0).setOrderId(orderId);
            tripObjects.get(0).setBillNo(billNo);
            tripObjects.get(0).saveInBackground();
            Toast.makeText(KmsActivity.this, "values uploaded", Toast.LENGTH_LONG).show();
            popupDialog.cancel();
        }
    }
});
builder.show();

【问题讨论】:

  • 如果对话框在按下按钮时自动消失,那么您可以编写一个自定义对话框并覆盖点击监听器方法(不使用构建器)。
  • 嗨,Wax,你能提供任何参考链接吗
  • 链接?只需从 AlertDialog 扩展您的类并在构造函数中调用所需的基本方法 :) 您还可以设置自定义视图。不幸的是,我不记得方法名称。也许setView。如果您不想在外部点击时关闭它,只需设置属性setCancelable(false)

标签: java android xml android-studio


【解决方案1】:

您可以在带有 toast 消息的条件下调用正单击按钮上的文本验证方法。 或者您可以将 addTextChangeListener 添加到您输入文本的文本视图中,以便在每次更改文本时调用验证方法。

【讨论】:

  • 你好 Ankit,我没听懂你说的,请你给我一个合适的例子
【解决方案2】:

第一个导入类为 - import android.support.v7.app.AlertDialog;

那就试试这个 -

final EditText input1 = new EditText(MainActivity.this);
        final EditText input2 = new EditText(MainActivity.this);
        input1.setHint("Enter name1");
        input2.setHint("Enter Name2");
        LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        linearLayout.addView(input1);
        linearLayout.addView(input2);

        final AlertDialog builder = new AlertDialog.Builder(MainActivity.this)
                .setTitle("Sign In Failed")
                .setCancelable(false)
                .setMessage("Invalid username or password").setView(linearLayout).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                    }
                }).create();
        builder.show();
        ((AlertDialog)builder).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (input1.length() <= 0) {
                    Toast.makeText(MainActivity.this, "Please Enter Name", Toast.LENGTH_SHORT).show();

                } else {
                    Toast.makeText(MainActivity.this, "OK", Toast.LENGTH_SHORT).show();
                    builder.dismiss();
                }
            }
        });

【讨论】:

  • 嗨 Onkar,我已经复制粘贴了你的代码,上面写着不可转换的类型;无法将 'android,support.v7.app.AlertDialog.Builder' 转换为 /android.support.v7.app.AlertDialog'。
  • 请看我的代码。它不是“AlertDialog.Builder”只有“AlertDialog”
  • 检查这个 - final AlertDialog builder = new AlertDialog.Builder(MainActivity.this)
  • 它的说法,需要:'android.support.v7.app.AlertDialog' 但找到'android,support.v7.app.AlertDialog.Builder'
  • 清理你的项目并重建
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-15
  • 2017-11-11
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多