0

我对一些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();

            }

...

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

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

4

4 回答 4

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();
}
于 2012-06-04T00:20:10.750 回答
0

您想要的代码是检查 EditText 中字符串的长度

if( EditText.getText().length() > 0 ){
    do something here if text exists
   }else{
    do something else here if empty
        }
于 2012-06-04T00:19:22.487 回答
0

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

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

于 2012-06-04T00:21:46.113 回答
0

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

    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;
}
于 2015-05-05T10:53:52.250 回答