Java 如何检查editText字段是否为空,并使用按钮将其转到新活动?

Java 如何检查editText字段是否为空,并使用按钮将其转到新活动?,java,android,Java,Android,我制定了以下代码: public class MainActivity extends AppCompatActivity { private ImageButton ourButton; private EditText operand1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la

我制定了以下代码:

public class MainActivity extends AppCompatActivity {

private ImageButton ourButton;
private EditText operand1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Find Views by IDs :
    ourButton = (ImageButton) findViewById(R.id.gobutton);
    operand1 = (EditText) findViewById(R.id.edit_Name);

    String ed_text = operand1.getText().toString().trim();
    if(ed_text.isEmpty() || ed_text.length() == 0 || ed_text.equals("") || ed_text == null)
    {
        ourButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "You did not enter a username", Toast.LENGTH_LONG).show();
            }
        });
    }
    else
    {
        ourButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
                MainActivity.this.startActivity(myIntent);
            }
        });
    }

}
问题是,如果我在字段中输入或不输入任何内容的情况下按下按钮,它会显示:

您没有输入用户名

下一个活动也不会起作用


在确保用户输入名称的同时,如何使用按钮将用户移动到下一个活动?

问题在于您没有在侦听器中检查值。将其更改为:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Find Views by IDs :
    ourButton = (ImageButton) findViewById(R.id.gobutton);
    operand1 = (EditText) findViewById(R.id.edit_Name);


    ourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (operand1.getText().toString().trim().length() > 0) {
                Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
                MainActivity.this.startActivity(myIntent);
            } else {
                Toast.makeText(MainActivity.this, "You did not enter a username", Toast.LENGTH_LONG).show();
            }
        }
    });
}

此外,在创建活动时还会调用onCreate,因此您无法在其中检查名称字段的值。这就是为什么您需要在按钮的单击侦听器中移动该复选框。然后,当您单击按钮时,它将始终检查名称字段是否为空。

您需要在按下按钮时进行检查,以下是一个示例:

public class MainActivity extends AppCompatActivity {

private ImageButton ourButton;
private EditText operand1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Find Views by IDs :
    ourButton = (ImageButton) findViewById(R.id.gobutton);
    operand1 = (EditText) findViewById(R.id.edit_Name);

    ourButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(operand1.getText().length() == 0){
                Toast.makeText(MainActivity.this, "You did not enter a username", Toast.LENGTH_LONG).show();
            }else{
               Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
            MainActivity.this.startActivity(myIntent);
            }
        }
    });
  }
}

试试这个

 public class MainActivity extends AppCompatActivity {

     private ImageButton ourButton;
     private EditText operand1;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

          // Find Views by IDs :
          ourButton = (ImageButton) findViewById(R.id.gobutton);
          operand1 = (EditText) findViewById(R.id.edit_Name);

          String ed_text = operand1.getText().toString().trim();

          ourButton.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              if(ed_text.isEmpty() || ed_text.length() == 0 || ed_text.equals("") || ed_text == null) {
                  Toast.makeText(MainActivity.this, "You did not enter a username", Toast.LENGTH_LONG).show();

              } else {
                    Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
                    MainActivity.this.startActivity(myIntent);       
              } 
         });
    } 

}  

像那样使用你的代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private ImageButton ourButton;
private EditText operand1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Find Views by IDs :
ourButton = (ImageButton) findViewById(R.id.gobutton);
operand1 = (EditText) findViewById(R.id.edit_Name);

 ourButton.setOnClickListener(this);

}
 @Override
 public void onClick(View view) {
 String ed_text = operand1.getText().toString().trim();
          if(ed_text.equals("")){
               Toast.makeText(MainActivity.this, "You did not enter a  username", Toast.LENGTH_LONG).show()
             }else{

            Intent myIntent = new Intent(MainActivity.this,     ScreenName.class);
            MainActivity.this.startActivity(myIntent);
        }

}
}

不要为一个按钮设置两个onClickListener

请尝试以下代码-

         String ed_text = operand1.getText().toString().trim();
                    ourButton.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                           if(!TextUtils.isEmpty(ed_text)){
                               Toast.makeText(MainActivity.this, "Not Empty", Toast.LENGTH_SHORT).show();
                               Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
                               startActivity(myIntent);
                               finish();    //If you want to kill current Activity.

                             }else{
                             Toast.makeText(MainActivity.this, "Empty", Toast.LENGTH_SHORT).show();

                              }
                        }
                    });
希望能有所帮助:)

你可以用这个

    public class MainActivity extends AppCompatActivity {

    private ImageButton ourButton;
    private EditText operand1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Find Views by IDs :
        ourButton = (ImageButton) findViewById(R.id.gobutton);
        operand1 = (EditText) findViewById(R.id.edit_Name);

        String ed_text = operand1.getText().toString();

            ourButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
if(ed_text.equalsignorcase("")
        {
                    Toast.makeText(MainActivity.this, "You did not enter a username", Toast.LENGTH_LONG).show();
                }

        else
        {

                    Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
                    MainActivity.this.startActivity(myIntent);

        }
            });


    }
您可以尝试以下代码:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

private ImageButton ourButton;
private EditText operand1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Find Views by IDs :
    ourButton = (ImageButton) findViewById(R.id.gobutton);
    operand1 = (EditText) findViewById(R.id.edit_Name);
    ourButton.setOnClickListener(this);

}


@Override
public void onClick(View v) {
    int id = v.getId();

    if (id == R.id.gobutton) {
       if(operand1.getText().toString().trim().equals("")){
           Toast.makeText(MainActivity.this, "You did not enter a  username", Toast.LENGTH_LONG).show()
       }else{
        Intent myIntent = new Intent(this,ScreenName.class);
        startActivity(myIntent);
       }

    } 
 }

TextUtils.isEmpty()
您必须在
onClick(…)
方法中进行检查。首先了解接口和回调方法。然后了解活动生命周期。我想你不知道那些事。你试过这么做吗?首先尝试一下,如果你想实现它,请使用ValidationYou's missing trim():)你们在短短几分钟内就应接不暇了,谢谢这一切都奏效了。我希望你能在所有这些答案中找到第一个正确答案……;)在这个答案中,一个空格被认为是有效的用户名
Use this, I have modified your code..

    public class MainActivity extends AppCompatActivity {

    private ImageButton ourButton;
    private EditText operand1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Find Views by IDs :
        ourButton = (ImageButton) findViewById(R.id.gobutton);
        operand1 = (EditText) findViewById(R.id.edit_Name);

        ourButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

        String ed_text = operand1.getText().toString().trim();

        if(ed_text.equals(""))
        {

                    Toast.makeText(MainActivity.this, "You did not enter a username", Toast.LENGTH_LONG).show();
         }
         else
        {
           Intent myIntent = new Intent(MainActivity.this, ScreenName.class);
                    MainActivity.this.startActivity(myIntent);
         }
      }
      });

    }