Android 如何为组件动态设置样式?

Android 如何为组件动态设置样式?,android,Android,我使用GetLayoutFlater方法动态设置按钮样式,但不应用宽度、高度和重量。如何解决这个问题 子菜单是一个水平线性布局,我的按钮动态添加到其中 in MainActivity : award = (Button) getLayoutInflater().inflate(R.layout.btn_layout, null); award.setId(R.id.award); award.setText("-

我使用GetLayoutFlater方法动态设置按钮样式,但不应用宽度、高度和重量。如何解决这个问题

子菜单是一个水平线性布局,我的按钮动态添加到其中

in MainActivity : 
 award = (Button) getLayoutInflater().inflate(R.layout.btn_layout, null);
                    award.setId(R.id.award);
                    award.setText("---");
                    submenu.addView(award);

in inflater Layout :
<Button
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:width="0dp"
        android:layout_weight="1"
        style="@style/subbtn"></Button>


in style.xml :
<style name="subbtn">
        <item name="android:textColor">#fff</item>
        <item name="android:background">@drawable/selector</item>
    </style> 
主活动中的
:
奖励=(按钮)GetLayoutFlater()。充气(R.layout.btn_layout,null);
奖励。setId(R.id.award);
裁决。setText(“--”);
子菜单addView(奖励);
在充气机布局中:
在style.xml中:
#fff
@可牵引/选择器

在添加视图之前,必须添加带有
布局参数的视图:

award.setLayoutParams(new LinearLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT,1.0f));
然后:

submenu.addView(award);

尝试
setBackgroundResource(R.drawable.subbtn)
@h3diyeh:plz查看更新的答案,尝试添加另一个float参数来设置权重。它不起作用,错误是:错误:(87,43)java:没有为LayoutParams(int,int,float)找到合适的构造函数。我找到了答案:
LinearLayout.LayoutParams按钮\参数=新的LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH\父项);         按钮参数重量=0.3f