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

0

コードでボタンを作成することは絶対にできますが、コントロールを動的に作成する正当な理由がない限り、ベストプラクティスとは見なされません。この投稿をチェックしてくださいAndroidアプリケーションのGridViewにボタンの配列を追加してください。

于 2011-11-10T12:58:16.953 に答える
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 に答える
0

使ってみて

 Button b = new Button();

これにより、現在の親アクティビティまたはフラグメント ビューに追加できる View インスタンスが得られます。可能な設定の完全なリファレンスについては、http://developer.android.com/reference/android/widget/Button.htmlを参照してください。

オブジェクト階層の親ビューによって提供されるすべての set メソッドを使用できます。

于 2011-11-10T13:02:04.437 に答える
0

テキストをボタンの下部に揃える必要がある場合、必要なのは次のとおりです。

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