【问题标题】:Conditions on a editText编辑文本的条件
【发布时间】:2012-06-04 00:04:56
【问题描述】:

我对一些 editText 有点挣扎:S 我想检查一些条件,如果用户填写了一个字段:我的代码似乎不起作用。

代码:

...

     input.setText("rrr");
     input2.setText("rrr");

     AlertDialog.Builder builder = new AlertDialog.Builder(ctx);

     builder.setCancelable(true);
     builder.setTitle("Add a friend");
     builder.setMessage("Fill in the fields you know :");

     builder.setView(layout);

    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {

            if(input.getEditableText() != null && input2.getEditableText() != null && input3.getEditableText() != null){

                Dialog d = new Dialog(ctx);
                d.setTitle("BLiBLiBLi !");
                d.show();

            }else if(input.getEditableText() != null && input2.getEditableText() != null && input3.getEditableText() == null){

                Dialog d = new Dialog(ctx);
                d.setTitle("BLABLABLA !");
                d.show();

            }

...

如您所见,前 2 个字段有一个 setText("rrr");但不是第三个... 所以第二个条件应该指出(如果我不填写第三个输入),我应该得到 BLABLABLA 消息,但我总是得到 BLiBLiBLi :'((这当然只是一个测试:p)

我已经尝试使用 input.getEditableText().toString != "" 更改 input.getEditableText() != null 或像这样设置输入 input.setText("");或 input.setText(null); :它只是不起作用我总是以第一个条件结束,认为我的所有字段都被填充了一些东西

【问题讨论】:

  • 可能是因为它不为null,它是一个空字符串。您是否尝试过设置断点并检查值?
  • 我认为您想要检查编辑文本是否为空,不是吗?
  • 请在您的旧问题中标记正确答案。

标签: android android-edittext settext


【解决方案1】:

只需检查每个EditText 中的文本长度。这将做你想要的......

if(input.getText().toString().length() > 0 && input2.getText().toString().length() > 0 && input3.getText().toString().length() > 0 ){

    Dialog d = new Dialog(ctx);
    d.setTitle("BLiBLiBLi !");
    d.show();

} else if(input.getText().toString().length() > 0 && input2.getText().toString().length() > 0 && input3.getText().toString().length() == 0 ) {

    Dialog d = new Dialog(ctx);
    d.setTitle("BLABLABLA !");
    d.show();
}

【讨论】:

    【解决方案2】:

    你想要的代码是检查EditText中String的长度

    if( EditText.getText().length() > 0 ){
        do something here if text exists
       }else{
        do something else here if empty
            }
    

    【讨论】:

      【解决方案3】:

      您应该将input.getText() != null 更改为input.getText().toString().equals("")。如果 EditText 字段为空,则表示它包含一个空字符串 (text=""),而不是 null。

      最简单和“最漂亮”的方法是使用TextUtils.isEmpty()

      【讨论】:

        【解决方案4】:

        你好,你也可以试试这个方法。

            EditText usernameEditText = (EditText)  findViewById(R.id.editUsername);
            sUsername = usernameEditText.getText().toString();
            if (sUsername.matches("")) {
            Toast.makeText(this, "You did not enter a username",Toast.LENGTH_SHORT).show();
            return;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-12-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多