0

我只想在我想要的时候动态地将按钮添加到我的布局中。这些按钮应该是这样的 XML 按钮:

 <Button android:text="Text" 
 android:gravity="bottom" 
 android:textSize="10dp" 
 android:textColor="#FFFFFF" 
 android:layout_width="wrap_content"
 android:background="@drawable/attack1"
 android:layout_height="wrap_content" 
 android:id="@+id/workingButton">
 </Button>

.

public class GravityIssueActivity extends Activity
{
    LinearLayout layout;
    Button newButton;
    Button buttonByXml;
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //the button in the xml file
        buttonByXml = (Button)findViewById(R.id.workingButton);
        layout = (LinearLayout)findViewById(R.id.layoutToInsert);
        //my new programatically "born" button
        newButton = new Button(this);
        //Setting the properties as i want
        newButton.setText("Text");
        newButton.setTextSize(10);
        newButton.setTextColor(Color.WHITE);
        newButton.setBackgroundResource(R.drawable.attack1);
        // Gravity = Bottom !!!!!!!!!!
        newButton.setGravity(Gravity.BOTTOM);
        // getting the XML buttons params just for case...
        newButton.setLayoutParams(new LayoutParams(buttonByXml.getLayoutParams()));
        //Adding my new Button to the layout
        layout.addView(newButton);
    }
}

这是结果的图像:

在此处输入图像描述

当我复制所有属性时,怎么可能变成不同的结果?

4

5 回答 5

1

如果您想创建动态视图(如 Button、textview 等),那么只需使用此代码并在您的应用程序中运行它。

MyActivity.java://你的java文件

 LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout1);
 Button btn = new Button(this)
 btn.setText("My Dynamic Button);
 btn.setMinLines(1);
 btn.setMaxLines(3);
 ll.addView(et);

在 XML 文件中:

 <LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/TextView01"
android:layout_below="@+id/relativeLayout1"
android:orientation="vertical" >

于 2014-06-04T15:40:08.497 回答
0

您绝对可以在代码中创建按钮,但除非您有充分的理由动态创建控件,否则它不被视为最佳实践。查看这篇文章Add an array of buttons to a GridView in an Android application

于 2011-11-10T12:58:16.953 回答
0

尝试使用

 Button b = new Button();

这为您提供了一个 View 实例,可以将其添加到您当前的父 Activity 或 Fragmnet 视图中。有关可能设置的完整参考,请查看http://developer.android.com/reference/android/widget/Button.html

您可以使用对象层次结构中父视图提供的所有设置方法。

于 2011-11-10T13:02:04.437 回答
0

如果您需要将文本与按钮底部对齐,您只需要:

Button button = ...
//apply required paramteres
button.setGravity(Gravity.BOTTOM);
于 2011-11-10T13:13:41.000 回答
0

使用下面的代码。您还可以添加其他参数

    Button submit=new Button(this);
    LinearLayout.LayoutParams params= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
    params.setMargins(25, 0, 25, 0);
    submit.setLayoutParams(params);
    submit.setText("Attack");
    submit.setTextSize(10);
    submit.setTextColor(getResources().getColor(R.color.white));
    submit.setBackgroundResource(R.drawable.attack);
于 2011-11-10T13:20:00.933 回答