2012-08-14 91 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(); 
相關問題