Android 基于相同布局的多个按钮?

Android 基于相同布局的多个按钮?,android,android-layout,Android,Android Layout,我的应用程序由GridLayout和多个按钮组成(目前所有按钮都是切换按钮)。由于按钮的数量将根据用户操作而改变,我希望能够在代码中添加和删除按钮。我可以用xml为按钮创建布局,然后用Java创建并添加到我的GridLayout吗?是。适配器的getView函数可以从xml中膨胀按钮。通常,您会检查并查看传入视图是否为空,如果为空,则会为新视图充气。您可以轻松完成此操作。下面是一个例子: LinearLayout buttonsLayout = (LinearLayout) yourLayout

我的应用程序由GridLayout和多个按钮组成(目前所有按钮都是切换按钮)。由于按钮的数量将根据用户操作而改变,我希望能够在代码中添加和删除按钮。我可以用xml为按钮创建布局,然后用Java创建并添加到我的GridLayout吗?

是。适配器的getView函数可以从xml中膨胀按钮。通常,您会检查并查看传入视图是否为空,如果为空,则会为新视图充气。

您可以轻松完成此操作。下面是一个例子:

LinearLayout buttonsLayout = (LinearLayout) yourLayout.findViewById(R.id.items_layout);
LayoutParams buttonLayoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT,         LayoutParams.WRAP_CONTENT);
buttonLayoutParams.setMargins(mMarginsInPixel, 0, mMarginsInPixel, 0);
button.setLayoutParams(buttonLayoutParams);

// Adding button to layout
buttonsLayout.addView(button);

// or removing button from layout
buttonsLayout.removeView(button);

Grid**Layout**
,而不是
GridView
。谢谢。我为我的按钮布局创建了一个新的布局文件,并将其膨胀到用Java创建的按钮<代码>ToggleButton=(ToggleButton)GetLayoutFlater().inflate(R.layout.ToggleButton,null)这似乎不是我想要的。我想用xml创建按钮的布局,然后用Java创建使用该布局的按钮。在您的回答中,它是用xml完成的线性布局,如果我理解正确的话,按钮的布局是用Java设置的。我没有完全理解两者之间的区别,所以我只描述我的代码的作用:)您用xml创建布局。(线性布局,或任何您喜欢的)然后,在这段java代码中,您可以通过id找到xml布局,创建按钮,并将它们添加到该布局中