如何从onResume上的片段中删除所有小部件

时间:2016-05-20 17:22:09

标签: java android android-fragments button widget

我有一个片段,其中包含许多动态添加到布局中的按钮。因为它们是动态添加的,所以我没有为它们分配ID来引用它们。

在我的主要活动onResume中,我希望能够清除此特定片段中的所有小部件,而无需通过ID引用每个按钮来删除它。有没有办法可以做到这一点?

可能运行以下命令,但应用于所有按钮而不引用特定ID'

button.setVisibility(View.GONE);

修改

for (int i = 0; i < R.layout.grid_cell.getCount(); i++) {
View v = R.layout.grid_cell.getChildAt(i);
R.layout.grid_cell.removeView(v);
// or you can check the view
//if (v instanceof Button) {
//    layout.removeView(v);
//}
}

1 个答案:

答案 0 :(得分:0)

你的onResume()

中的

for (int i = 0; i < layout.getChildCount(); i++) {
        View v = layout.getChildAt(i);
        layout.removeView(v);
      // or you can check the view
      //if (v instanceof Button) {
      //    layout.removeView(v);
      //}
    }

修改  &#34;布局&#34;不是布局文件。

RelativeLayout layout= (RelativeLayout) findViewById(R.id.root);

如果您正在使用RecyclerView,则必须返回每个行项目的视图。例如,如果要在onResume()中删除视图,则可以将视图(如自己的itemClickListener)返回到activity中。因此,View是您行的根视图。而且你可以获得view.getChildCount()并将其放入循环中。 GridLayout或其他内容并不重要。想法是一样的。