簡體   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