我有一个片段,其中包含许多动态添加到布局中的按钮。因为它们是动态添加的,所以我没有为它们分配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);
//}
}
答案 0 :(得分:0)
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或其他内容并不重要。想法是一样的。