2013-02-22 54 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(); 
         } 
        }); 
相关问题