2012-08-14 77 views
1

这里遇到了一些问题。我创建了一个EditText数组,它工作正常。现在,当EditText的其中一个为空时,我收到错误消息。 这里是我的代码:在继续执行语句之前检查for循环是否已完成

int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay }; 
     for(int j=0; j<textIDs.length; j++) { 
      EditText editText = (EditText) findViewById(textIDs[j]); 
      if(editText.getText().toString().trim().equals("")) 
      { 
       // editText is empty 
       Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show(); 
       break; 
      } 
      else 
      { 
       // editText is not empty 
       Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show(); 
      } 

使用此代码的主要问题是,循环继续做它的功能,该代码 Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show(); 继续在每一个循环显示。这个Toast在循环完成后显示有什么方法吗?

回答

0
boolean doShowToast = false; 
    int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay }; 
    for(int j=0; j<textIDs.length; j++) { 
     EditText editText = (EditText) findViewById(textIDs[j]); 
     if(editText.getText().toString().trim().equals("")) 
     {// editText is empty 
      Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show(); 
      break; 
     } 
     else 
     { 
      // editText is not empty 
      doShowToast = true; 
     } 
    } 
    if(doShowToast){ 
     Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show(); 
    } 

利用布尔你只会显示else语句敬酒一次,退出循环后,并且只有当其他声明被称为,所以只有当“编辑文本不为空”

1

地方出来的for循环..

boolean isNotEmpty = false; 

    for(int j=0; j<textIDs.length; j++) { 
       EditText editText = (EditText) findViewById(textIDs[j]); 
       if(editText.getText().toString().trim().equals("")) 
       { 
        // editText is empty 
        Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT).show(); 

        isNotEmpty = false; // Marking as Empty 
        break; 
       } 
       else 
       { 
        // editText is not empty 

        isNotEmpty = true  // Marking as Non-Empty 

       } 
      } 
    if (isNotEmpty){ 
    Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT).show(); 
    } 
+0

先生我想我可以得到你的答案问题,因为两个吐司会显示。 – Androyds 2012-08-14 02:28:27

+0

请参阅编辑答案,它将只显示一个 – 2012-08-14 02:28:57

+0

在那里捕捉;)想知道你是否要像我一样抛出一个布尔值。 – WIllJBD 2012-08-14 02:30:05

0
int[] textIDs = new int[] {R.id.etFirstName, R.id.etLastName, R.id.etEmail, R.id.etAddress, R.id.etCity, R.id.etRegion, R.id.etMobile, R.id.etLandLine, R.id.etYear, R.id.etMonth, R.id.etDay }; 
Toast t; 

    for(int j=0; j<textIDs.length; j++) { 
     EditText editText = (EditText) findViewById(textIDs[j]); 
     if(editText.getText().toString().trim().equals("")) 
     {// editText is empty 
      t = Toast.makeText(MainActivity.this, "Request cannot performed..\n Please ensure all fields are filled", Toast.LENGTH_SHORT); 
      break; 
     } 
     else 
     { 
      // editText is not empty 
      static Toast toast = Toast.makeText(MainActivity.this, "12", Toast.LENGTH_SHORT); 
      t = toast; 
     } 
    } 
    t.show(); 
相关问题