一次将所有EditText设置为Text

时间:2018-10-29 16:02:49

标签: android android-edittext fragment

我有一个片段,里面有大约30 EditText。我想知道有什么方法可以抓住所有EditTexts并清除其中的文本,而不必一个接一个地完成。

谢谢。

3 个答案:

答案 0 :(得分:2)

如果您所有的编辑文本都在同一布局内(例如相对布局),则此方法应该起作用

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("");
    }
}

答案 1 :(得分:1)

尝试这样的事情:

ArrayList<EditText> editTextsList = new ArrayList<EditText>();

for( int i = 0; i < myLayout.getChildCount(); i++ )
  if( myLayout.getChildAt( i ) instanceof EditText )
    editTextsList.add( (EditText) myLayout.getChildAt( i ) );

editTextsList上进行迭代,并对列表中的每个EditText进行操作

我希望这对您有帮助

答案 2 :(得分:1)

是的,您可以使用以下方法。

public void clearStudentInfo(ViewGroup textViewsGroup) {       
    for (int i = 0, count = textViewsGroup.getChildCount(); i < count; ++i) {
        View view = textViewsGroup.getChildAt(i);
        // Check and confirm, is it is the TextView or not?
        if (textViewsGroup instanceof EditText) {
            ((EditText)textViewsGroup).setText("");
        }
    }
}

单击清除按钮时可以调用该方法,如下所示。

...

Button btnClear = findViewById(R.id.btnClr);

...

btnClear.setOnClickListener(new View.OnClickListener) {
    @Override
    void onClick(...) {
        clearStudentInfo((ViewGroup) findViewById(R.id.student_info));
}

谢谢