这是我的confirm__button.xml
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ConfirmButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/buttonConfirm" >
</Button>
这是我的styles.xml
<resources>
<style name="buttonConfirm" parent="@android:style/Widget.Button">
<item name="android:textColor">#FFFFFF</item>
<item name="android:textSize">15dip</item>
<item name="android:background">@drawable/ok_button_style</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
</resources>
这是我的ok_button_style.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="#F6974F"
android:centerColor="#F58A39"
android:endColor="#F48028"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#F37C22" />
<corners
android:radius="6dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:startColor="#F6974F"
android:centerColor="#F58A39"
android:endColor="#F48028"
android:angle="270" />
<stroke
android:width="2dp"
android:color="#F48028" />
<corners
android:radius="6dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_enabled="true" >
<shape>
<gradient
android:startColor="#F48028"
android:centerColor="#F58A39"
android:endColor="#F6974F"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#F5812A" />
<corners
android:radius="6dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_enabled="false" >
<shape>
<solid
android:color="#FFB380" />
<stroke
android:width="1dp"
android:color="#FFA366" />
<corners
android:radius="6dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:startColor="#F48028"
android:centerColor="#F58A39"
android:endColor="#F6974F"
android:angle="270" />
<stroke
android:width="1dp"
android:color="#F37C22" />
<corners
android:radius="6dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
TestActivity.java
public class TestActivity extends Activity {
private Button btnConfirm;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnConfirm = (ConfirmButton)findViewById(R.id.confirmButton1);
btnConfirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btnConfirm.setEnabled(false);
}
});
}
}
public class ConfirmButton extends Button{
public ConfirmButton(Context context) {
super(context);
}
public ConfirmButton(Context context, AttributeSet attrs) {
this(context, attrs, R.layout.confirm__button);
}
public ConfirmButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
}
我不明白为什么btnConfirm
没有buttonConfirm
样式。
答案 0 :(得分:1)
只需转换到您的ConfirmButton,就不会“更改”按钮的类型。您需要更改以更改XML以实际引用您的类。我不知道你的包裹,但
去吧:
<com.your.package.TestActivity$ConfirmButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ConfirmButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/buttonConfirm" >
</com.your.package.TestActivity$ConfirmButton>
您还应该使ConfirmButton成为一个静态类,或者将其移动到它自己的类中。