Android清除Clear Button的所有EditText字段

如何使用Clear Button布局中的所有EditText字段。 我有一个注册活动,有大约10个不同的EditTexts 。 我知道我可以去抓每个具体的参考,然后set.Text("") ; 但是我正在寻找一种更加动感优雅的方式。 可能抓住Layout并循环查找EditTexttypes中的所有项目,然后将其设置为"" 。 不知道如何做到这一点,并尝试在网上search,但没有运气。 任何示例代码?

@Pixie的答案很好,但是我想把它做得更好。

只有当所有的EditText都在一个布局中,但是当有一堆嵌套的布局时,这个方法才能正常工作。

我摸了一下脑后,我已经做出如下解决scheme:

 private void clearForm(ViewGroup group) { for (int i = 0, count = group.getChildCount(); i < count; ++i) { View view = group.getChildAt(i); if (view instanceof EditText) { ((EditText)view).setText(""); } if(view instanceof ViewGroup && (((ViewGroup)view).getChildCount() > 0)) clearForm((ViewGroup)view); } } 

要使用此方法,请按以下方式调用此方法:

 clearForm((ViewGroup) findViewById(R.id.sign_up)); 

你可以用你的XML文件的根布局的idreplace你的R.id.sign_up。

我希望这能帮助像我这样的人。

🙂

您可以遍历视图组中的所有子项并清除所有EditText字段:

 ViewGroup group = (ViewGroup)findViewById(R.id.your_group); for (int i = 0, count = group.getChildCount(); i < count; ++i) { View view = group.getChildAt(i); if (view instanceof EditText) { ((EditText)view).setText(""); } } 

使用editText.getText().clear();

使用ediText.getText().clear();

它对我来说就像一个魅力。

在执行下面的任何操作之后执行步骤

  ((EditText) findViewById(R.id.yoursXmlId)).setText(""); 

或者通过遍历所有的子对象来清除所有EditText字段:

 ViewGroup group = (ViewGroup)findViewById(R.id.your_group); for (int i = 0, count = group.getChildCount(); i < count; ++i) { View view = group.getChildAt(i); if (view instanceof EditText) { ((EditText)view).setText(""); } } 

或者使用下面的简单步骤:

 editText.getText().clear(); 

可能有帮助。

在我的情况下,我已经这样做了。

 public static void resetForm(ViewGroup group) { for (int i = 0, count = group.getChildCount(); i < count; ++i) { View view = group.getChildAt(i); if (view instanceof EditText) { ((EditText) view).getText().clear(); } if (view instanceof RadioGroup) { ((RadioButton)((RadioGroup) view).getChildAt(0)).setChecked(true); } if (view instanceof Spinner) { ((Spinner) view).setSelection(0); } if (view instanceof ViewGroup && (((ViewGroup) view).getChildCount() > 0)) resetForm((ViewGroup) view); } } 

我用这个嵌套LinearLayout来清除EditTexts和RadioButtons

//方法清除private void clear(ViewGroup group){for(int i = 0,count = group.getChildCount(); i

  if(view instanceof LinearLayout) { clear((ViewGroup) view); } else if(view instanceof EditText) { ((EditText) view).getText().clear(); } if (view instanceof RadioButton) { ((RadioButton) view).setChecked(false); } }//end for }//end method clear 
  // Update answer private void clearEditTextGroup(ViewGroup group){ for(int i=0 ; i< group.getChildCount(); i++){ View view = group.getChildAt(i); if(view instanceof EditText){ // use one of clear code } if(view instanceof ViewGroup && (((ViewGroup)view).getChildCount() > 0)) clearEditTextGroup((ViewGroup)view); } } 

使用这个代码之一来清除你的编辑文本

 edittext.getText().clear(); 

要么

 edittext.setText(null); 

要么

 edittext.setText(""); 

使用editText.getText().clear();

或setText为空使用下面的代码editText.setText(");