Android清除Clear Button的所有EditText字段
如何使用Clear Button
布局中的所有EditText
字段。 我有一个注册活动,有大约10个不同的EditTexts
。 我知道我可以去抓每个具体的参考,然后set.Text("")
; 但是我正在寻找一种更加动感优雅的方式。 可能抓住Layout
并循环查找EditText
types中的所有项目,然后将其设置为""
。 不知道如何做到这一点,并尝试在网上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(");