2013-02-22 55 views
0

我有一個動態添加EditTexts到我的佈局。他們沒有身份證件。這EditTexts都是必需的,不能留空。我有這個功能進行驗證:如何在沒有ID的情況下動態添加EditText時設置錯誤?

private boolean validate() { 
    boolean valid = true; 
    for (int i = 0; i < layout.getChildCount(); i++) { 
     if (layout.getChildAt(i).getTag() != null && layout.getChildAt(i).getTag().toString().contains("required")) { 
      String viewClass = layout.getChildAt(i).getClass().getName(); 
      if (viewClass.contains("EditText")) { 
       EditText et = (EditText) layout.getChildAt(i); 
       if (et.getText().toString().trim().isEmpty()) { 
        Log.d("#########", "EDIT TEXT ERROR"); 
        et.setError("This field is required.", getResources().getDrawable(R.drawable.indicator_input_error)); 
        valid = false; 
       } 
      } 
     } 
    } 
} 

其中layout是包含EditTexts我的佈局。它給我的日誌,但它沒有顯示錯誤。如果我將setError行更改爲

et.setText("#########"); 

文本更改正確。爲什麼不顯示錯誤?

回答

0

這是一些其他的錯誤。問題中的代碼工作正常。

0
private boolean validate() { 
     boolean valid = false; 
     System.out.println("getChildCount:"+ll.getChildCount()); 
     Log.d(TAG,"*****************1******************"); 
     for (int i = 0; i < ll.getChildCount(); i++) { 
      if (ll.getChildAt(i).getTag() != null && ll.getChildAt(i).getTag().toString().contains("required")) { 
       Log.d(TAG,"*****************2******************"); 
       String viewClass = ll.getChildAt(i).getClass().getName(); 
       if (viewClass.contains("EditText")) { 
        Log.d(TAG,"*****************3******************"); 
        EditText et = (EditText) ll.getChildAt(i); 
        if (et.getText().toString().trim().isEmpty()) { 
         Log.d(TAG,"*****************4******************"); 
         Log.d("#########", "EDIT TEXT ERROR"); 
         Utils.showAlertDialog(activity, "Error", "The fields are required",getResources().getDrawable(R.mipmap.ic_error), new DialogInterface.OnClickListener() { 
          @Override`enter code here` 
          public void onClick(DialogInterface dialog, int which) { 
           dialog.dismiss(); 
          } 
         }); 
         valid = true; 
        }else{ 
         Log.d(TAG,"**********else*******1******************"); 
         valid = false; 
        } 
       }else{ 
        Log.d(TAG,"********else*********2******************"); 
        valid = false; 
       } 
      }else{ 
       Log.d(TAG,"*********else********3******************"); 
       valid = false; 
      } 
     } 
     return valid; 
    } 

,並嘗試調用

if(validate()) { 
        Log.d(TAG,"********validate()*********1******************"); 
        SaveRecords(); 
       }else{ 
        Log.d(TAG,"**********else*******1******************"); 
        Utils.showAlertDialog(activity, "Error", "The fields are required",getResources().getDrawable(R.mipmap.ic_error), new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          dialog.dismiss(); 
         } 
        }); 
相關問題