重複の可能性:
Android-プログラムでボタンの色を設定する方法
プログラムでテーブル行を動的に追加し、それにボタンを追加しましたが、ボタンの色は変わりません。redbtnという名前のボタンの色を追加するためのXMLファイルを追加しました。アクティビティで追加すると機能しますが、プログラムでボタンのスタイルを追加しても色は変わりません。私に何ができる。
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));