-2

我想以编程方式在android中添加按钮,按钮的xml文件将是

<Button
android:textStyle="bold"
android:background="@drawable/blue"
android:textColor="@drawable/blue_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/funny_excuses"
android:id="@+id/funny"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:paddingLeft="6dp"
android:paddingRight="6dp"
android:textSize="25sp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

最好的方法是什么?我只会更改每个新按钮的文本。也许我会有另一种按钮类型,就像其他背景和文本颜色一样。

4

5 回答 5

2

还可以从代码中创建此 Button xml 和扩展布局资源:button.xml:

<Button
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:textStyle="bold"
 android:background="@drawable/blue"
 android:textColor="@drawable/blue_text"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="@string/funny_excuses"
 android:id="@+id/funny"
 android:paddingBottom="10dp"
 android:paddingTop="10dp"
 android:paddingLeft="6dp"
 android:paddingRight="6dp"
 android:textSize="25sp"
 android:layout_alignParentTop="true"
 android:layout_centerHorizontal="true" />

代码:

    Button button = (Button) getLayoutInflater().inflate(R.layout.button, null);
    button.setText("Hello world");
    RelativeLayout ll = (RelativeLayout) findViewById(R.id.ll); //layout to add
    ll.addView(button);
于 2014-09-19T12:46:12.370 回答
1

proje-->res-->values-->style.xml

<style name="othername" >
        <item name="android:layout_width">match_parent</item>
        <item name="android:textColor">#000000</item>
        <item name="android:textSize">20sp</item>
        <item name="android:gravity">left</item>
        <item name="android:layout_marginLeft">30sp</item>
        <item name="android:layout_marginRight">30sp</item>
        <item name="android:layout_marginTop">10sp</item>
   </style>

<Button
style="@style/othername"
/>
于 2014-09-19T12:24:20.747 回答
1

好的,只做一件事。只有你想更改按钮文本。所以,以编程方式为按钮对象保留 setText() 和 setBackground()...

于 2014-09-19T12:26:18.327 回答
1

在您的布局中创建您的按钮,然后yourButton.setVisibility(View.GONE);用于隐藏它并yourButton.setVisibility(View.VISIBLE);用于使其可见。

于 2014-09-19T12:52:25.290 回答
1

布局.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@id/llContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

.java文件

public void onClick(View v) {
switch (v.getId()) {

case R.id.btnAddARoom:
    //add a room
    //Find you parent layout which we'll be adding your button to:
    LinearLayout layout = (LinearLayout) findViewById(R.id.llContainer);

    roomName = etAddARoom.getText().toString();
    Button createdButton = new Button(this);
    createdButton.setText(roomName);
    createdButton.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,         LayoutParams.WRAP_CONTENT));
    layout.addView(createdButton);

    //if no rooms make tvnorooms disappear

    break;
}
于 2014-09-19T12:53:15.490 回答