1

Here is my 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>

here is my 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>

here is my 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);
    }
}

I do not understand why the btnConfirm has no buttonConfirm style.

1
  • 2
    you are not using custom button Commented Sep 23, 2013 at 19:57

1 Answer 1

2

Just casting to your ConfirmButton won't "change" the type of the button. You need change to change your XML to actually reference your class. I don't know your package but,

go for this:

<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>

You should also EITHER make ConfirmButton a static class, or move it up into a class of it's own.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.