49

いくつかのボタンを使用して、AlertDialogのLinearLayoutをプログラムで作成しています。

私はこれをしたい:

<LinearLayout android:id="@+id/footer" android:layout_width="fill_parent"
style="@android:style/ButtonBar">

しかし、このようなコードでは:

LinearLayout buttons = new LinearLayout(parentContext);
buttons.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams buttonsParams =
    new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT);
topLayout.addView(buttons, buttonsParams);
buttons.setLayoutParams(buttonsParams);
Button btnAdd = new Button(context);
btnAdd.setText("Add");

プログラムでボタンのスタイルを設定(ボタンバーを使用)するにはどうすればよいですか?

4

6 に答える 6

53

私がパーティーに参加するのに遅すぎないことを願っています:)

さて、スタイルViewは初期化フェーズで適用できます。例えば:

LinearLayout button = new LinearLayout(context, null, android.R.style.ButtonBar);
于 2012-09-21T15:48:55.173 に答える
44

これは私のために働いた:

int buttonStyle = R.style.your_button_style;
Button button = new Button(new ContextThemeWrapper(context, buttonStyle), null, buttonStyle)
于 2014-06-26T19:24:29.357 に答える
14

これは私が探していたものを実際に提供した唯一の答えです:http://belencruz.com/2013/04/set-styles-programmatically-in-android/

基本的に、必要<Button/>なスタイルの要素を含むレイアウトXMLファイルを作成します。次に、プログラムでそれを膨らませ、ボタンのテキストをカスタマイズします。

次のようなもの:

<?xml version="1.0" encoding="utf-8"?>
<Button style="@style/your_custom_style_here"/>

コード内:

Button button = (Button)getLayoutInflater().inflate(R.layout.your_custom_button_layout_file, null);
button.setText("Your Text");
于 2016-12-14T09:36:22.283 に答える
10

AirBnBのParisライブラリはこれに最適で、次のようなプログラムによる構成が可能です。

Paris.styleBuilder(textView)
        .add(R.style.MyGreenTextView)
        .textSizeRes(R.dimen.my_text_size_small)
        .apply();
于 2018-08-31T04:12:09.990 に答える
5

waqaslamsの代わりに

LinearLayout button = new LinearLayout(context, null, android.R.style.ButtonBar);

(つまり、コメントから判断すると、APIは信頼できます)私はここからridoysの回答も読んだことがあります[ Android Button Styling Programly ]

transferBtn.setBackgroundResource(R.layout.buttonstyle);

(使用するAPIバージョンによっては、これらのいずれかが機能する可能性があるため、上記の回答を公開します)、

しかし、これは私にとってうまくいったことです(「レイアウト」から「描画可能」への変更に注意してください)

Button b = new Button(this);
b.setBackgroundResource(R.drawable.button_custom_green);

([ビューでスタイル属性をプログラムで設定する方法]からの回答)

于 2014-05-13T17:16:16.833 に答える
1

Button私の場合、コンストラクターに渡すときにスタイルがまったくロードされませんでした。マテリアルデザインビューを使用していたためと思われます。ここに私のケースを解決したものがあります:

val themeWrapper = ContextThemeWrapper(
      context,
      R.style.AppTheme_ButtonPrimary // my button style
)

val button = MaterialButton(themeWrapper)

MaterialButtonの代わりに作成されたことに注意してくださいButton

私はこの解決策を次の場所で見つけました:Androidでプログラムによってビューのスタイルを指定する方法

于 2020-05-21T07:22:12.480 に答える