繁体   English   中英

如何检查我的 editText 字段是否为空并使其转到带有 Button 的新活动?

[英]How do I check if my editText field is empty and make it go to a new activity with a Button?

我已经做了这个代码:

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);
            }
        });
    }

}

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

您没有输入用户名

下一个活动也不会起作用。

如何制作按钮以将用户移至下一个活动,同时确保他输入了姓名?

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);
         }
      }
      });

    } 

问题是您没有检查侦听器中的值。 改成这样:

@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();
            }
        }
    });
}

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

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

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 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);
       }

    } 
 }

像这样改变你的代码

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);
        }

}
}

你可以用这个

    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);

        }
            });


    }

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

尝试以下代码 -

         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();

                              }
                        }
                    });

希望它会有所帮助:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM