-1

我是 Android 新手,我正在做一个非常简单的应用程序。我有两个可编辑的 EditText 和一个名为 Login 的按钮。当我单击按钮时,如果 EditText 的字符串为空,我想显示一个 toast。这是我的代码。

package com.example.prenotazione_esame;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.view.View.OnClickListener;

public class LoginActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        Button button_crea = (Button) findViewById(R.id.Create);
        button_crea.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v){
                openCreateAccount();
            }
        });

        Button button_login = (Button) findViewById(R.id.Login);
        button_login.setOnClickListener(new View.OnClickListener() {        
            @Override
            public void onClick(View v) {
                executeLogin();

            }
        });

    }
   private void openCreateAccount(){
       Intent intent_crea = new Intent(this, CreateAccountActivity.class);
       startActivity(intent_crea);
    }
   private void executeLogin(){
       EditText login_text = (EditText) findViewById(R.id.UserName);
       EditText password_text = (EditText) findViewById(R.id.Password);
       if ((login_text.getText().toString()=="")|| (password_text.getText().toString() == "")){
           Toast toast = Toast.makeText(this, "Inserisci le credenziali di accesso", Toast.LENGTH_SHORT);
           toast.show();
       }


   }
}

问题出在哪里?谢谢你。

4

3 回答 3

2

使用 String 的 equals() 方法而不是 == 运算符来比较字符串:

替换此行

if ((login_text.getText().toString()=="")|| (password_text.getText().toString() == ""))

if ((login_text.getText().toString().equals(""))|| (password_text.getText().toString().equals("") ))

在 Java 中,新手遇到的最常见错误之一是使用 == 来比较字符串。您必须记住, == 比较对象引用,而不是内容。

查看第 7 项:前 10 名 - 新的 Java 开发人员错误

于 2014-05-07T18:07:54.950 回答
1

使用比较字符串:

login_text.getText().toString().equals("") 
于 2014-05-07T18:05:55.217 回答
1

您必须使用 myString.equals(compareString) 进行字符串比较,而不是 myString == compareString。在您的情况下,您可以使用 isEmpty() 方法查看字符串是否为空。

试试这个 if 语句:

     if ((login_text.getText().toString().isEmpty())|| (password_text.getText().toString().isEmpty)){
           Toast toast = Toast.makeText(this, "Inserisci le credenziali di accesso", Toast.LENGTH_SHORT);
           toast.show();
     }
于 2014-05-07T18:08:59.857 回答