可能重复:
Android - 如何以编程方式设置按钮颜色
我在程序中动态添加了表格行并向其添加了按钮,但按钮的颜色没有改变。我添加了一个 XML 文件,用于为名为 redbtn 的按钮添加颜色,当我在活动中添加它们时它正在工作,但是当我以编程方式添加按钮样式时,颜色没有改变。我能做些什么。
redbtn.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true">
<shape>
<solid android:color="#DF0101" />
<stroke android:width="1dp" android:color="#ef4444" />
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient android:startColor="#DF0101" android:endColor="#DF0101" android:angle="270" />
<stroke android:width="1dp" android:color="#992f2f" />
<corners android:radius="3dp" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
</shape>
</item>
</selector>
在布局中:
<Button
android:id="@+id/btn_spinner_user_search_select"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="25dp"
android:layout_marginTop="5dp"
android:background="@drawable/redbtn"
android:text="@string/btn_delete_user_search_user" />
在程序中:
TableRow addcomponentrow=new TableRow(Deleteuser.this);
addcomponentrow.setId(200);
addcomponentrow.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
Button Deletecomponentbtn=new Button(Deleteuser.this);
Deletecomponentbtn.setText("Delete");
Deletecomponentbtn.setId(200);
Deletecomponentbtn.setPadding(10, 0, 20, 2);
Deletecomponentbtn.setBackgroundColor(R.drawable.redbtn);
addcomponentrow.addView(Deletecomponentbtn);
userdetailTable.addView(addcomponentrow,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));