How to use colorstatelist in android
<p>I want to change button text color on diffrent states like btn_presses,btn_focus,etc.</p>

<p>For that i use colorstatelist.xml and I refrenced it in button text in titlebarlayout.xml.  But still I cant able to change text color of button.</p>

<p>Any one know how to do it.Is I am going wrong anywhere in code.</p>

<p>MainActivity.java   </p>

<pre><code>public class MainActivity extends Activity implements OnClickListener {

        EditText emailEdit, passwordEdit;
        Button loginButton;
        String email, password;
        TitleBarLayout titlebarLayout;
        String r;
        String rr;

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.login_activity);

            emailEdit = (EditText) findViewById(R.id.etEmail);
            passwordEdit = (EditText) findViewById(R.id.etPassword);

            loginButton = (Button) findViewById(R.id.loginButton);
            loginButton.setOnClickListener(this);

            // titlebarLayout=(TitleBarLayout) findViewById(R.id.titlebar);
            titlebarLayout = new TitleBarLayout(MainActivity.this);
            titlebarLayout.setLeftButtonText("");
            titlebarLayout.setRightButtonText("Logout");
            titlebarLayout.setTitle("iProtect");
            //titlebarLayout.setLeftButtonSize(50,50);
            //titlebarLayout.setRightButtonSize(100,50);
            titlebarLayout.setLeftButtonBackgroundColor(Color.rgb(34,49,64));
            titlebarLayout.setRightButtonBackgroundColor(Color.rgb(34,49,64));
            titlebarLayout.setLeftButtonTextColor(Color.rgb(255,255,255));
            titlebarLayout.setRightButtonTextColor(Color.rgb(255,255,255));


            XmlResourceParser parser =getResources().getXml(R.color.colorstatelist);

                ColorStateList colorStateList;
                try {
                    colorStateList = ColorStateList.createFromXml(getResources(), parser);

                    titlebarLayout.setLeftButtonTextColor(colorStateList);
                } catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    //      ColorStateList colorlist=new ColorStateList( new int[][] { new int[] { android.R.attr.state_focused }, new int[0], }, new int[] { Color.rgb(0, 0, 255), Color.BLACK, } );
    //      titlebarLayout.setLeftButtonTextColor(colorlist);


            OnClickListener listener = new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    if (v.getId() == R.id.left_button) {

                    } else if (v.getId() == R.id.right_button) {

                    }
                }
            };
            titlebarLayout.setLeftButtonOnClickListener(listener);
            titlebarLayout.setRightButtonOnClickListener(listener);
        }
</code></pre>

<p>TitleBarLayout.java</p>

<pre><code>public class TitleBarLayout {

    private Activity activityRef;
    private View contentView;
    private Button leftButton, rightButton;
    TextView titletext;

    public TitleBarLayout(Activity a) {
        Log.i("TitleBar Layout", "Inside constructor");
        activityRef = a;
        inflateViewsFromXml();
        setListenersOnViews();
        setValuesOnViews();
    }

    private void setValuesOnViews() {
        leftButton.setText("");
        rightButton.setText("");
    }

    private void setListenersOnViews() {
        leftButton.setOnClickListener(listener);
        rightButton.setOnClickListener(listener);
    }

    private final OnClickListener listener = (new OnClickListener() {

        @Override
        public void onClick(View v) {
            activityRef.finish();
        }
    });

    private void inflateViewsFromXml() {
        contentView = activityRef.findViewById(R.id.titlebar);
        rightButton = (Button) contentView.findViewById(R.id.right_button);
        leftButton = (Button) contentView.findViewById(R.id.left_button);
        titletext = (TextView) contentView.findViewById(R.id.title_textview);
    }

    public void setLeftButtonText(int resID) {
        leftButton.setText(resID);
    }

    public void setLeftButtonText(String text) {
        leftButton.setText(text);
    }

    public void setLeftButtonOnClickListener(View.OnClickListener listener) {
        leftButton.setOnClickListener(listener);
    }

    public void setRightButtonText(int resID) {
        rightButton.setText(resID);
    }

    public void setRightButtonText(String text) {
        rightButton.setText(text);
    }

    public void setRightButtonOnClickListener(View.OnClickListener listener) {
        rightButton.setOnClickListener(listener);
    }

    public void setTitle(int resID) {
        titletext.setText("" + resID);
    }

    public void setTitle(String text) {
        titletext.setText(text);
    }

    public void setLeftButtonSize(int width, int height) {
        Log.i("Button" ,"Width"+width);
        leftButton.setWidth(width);
        leftButton.setHeight(height);
    }

    public void setRightButtonSize(int width, int height) {

        Log.i("Button" ,"Width"+width);
        rightButton.setWidth(width);
        rightButton.setHeight(height);
    }

    public void setLeftButtonBackgroundResource(int backgroundResource) {

    }

    public void setRightButtonBackgroundResource(int backgroundResource) {

    }

    public void setLeftButtonBackgroundColor(int backgroundColor) {
        Log.i("Button" ,"COLOR"+backgroundColor);
        leftButton.setBackgroundColor(backgroundColor);
    }

    public void setRightButtonBackgroundColor(int backgroundColor) {
        Log.i("Button" ,"COLOR"+backgroundColor);
        rightButton.setBackgroundColor(backgroundColor);
    }

    public void setLeftButtonTextColor(int textcolor) {
        Log.i("Button" ,"COLOR"+textcolor);
        leftButton.setTextColor(textcolor);
    }

    public void setRightButtonTextColor(int textcolor) {
        Log.i("Button" ,"COLOR"+textcolor);
        rightButton.setTextColor(textcolor);
    }

    public void setLeftButtonTextColor(ColorStateList colorStateList) {
        leftButton.setTextColor(colorStateList);

    }

    public void setRightButtonTextColor(ColorStateList colorStateList) {

    }
}
</code></pre>

<p>color.xml</p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;resources&gt;

    &lt;color name="title_bg_color"&gt;#2e4256&lt;/color&gt;
    &lt;color name="layout_bg_color"&gt;#dcdcdc&lt;/color&gt;
    &lt;color name="state_pressed"&gt;#ffffff&lt;/color&gt;
    &lt;color name="state_selected"&gt;#00ff00&lt;/color&gt;
    &lt;color name="state_focused"&gt;#0000ff&lt;/color&gt;

&lt;/resources&gt;
</code></pre>

<p>titlebarlayout.xml</p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/titlebar_height"
    android:background="@color/title_bg_color"
    android:gravity="center_vertical"
    android:orientation="horizontal" &gt;

    &lt;Button
        android:id="@+id/left_button"
        android:layout_width="@dimen/titlebar_button_width"
        android:layout_height="@dimen/titlebar_button_height"
        android:text=""
        android:clickable="true"
        android:textColor="@color/colorstatelist"
        android:background="@drawable/button_shape_drawable"
        android:layout_marginLeft="10dp"/&gt;

    &lt;TextView
        android:id="@+id/title_textview"
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center"
        android:text=""
        android:textColor="@android:color/white"
        android:textStyle="bold" /&gt;

    &lt;Button
        android:id="@+id/right_button"
        android:layout_width="@dimen/titlebar_button_width"
        android:layout_height="@dimen/titlebar_button_height"
        android:text=""
        android:clickable="true"
        android:layout_marginRight="10dp"
        android:background="@drawable/button_shape_drawable"
        android:textColor="@color/colorstatelist" /&gt;

&lt;/LinearLayout&gt;
</code></pre>

<p>colorstatelist.xml</p>

<pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt;
    &lt;item android:state_pressed="true"
          android:color="@color/state_pressed"/&gt;
    &lt;item android:state_selected="true"
          android:color="@color/state_selected"/&gt;
    &lt;item android:state_focused="true"
          android:color="@color/state_focused"/&gt;
    &lt;item android:color="#808080"/&gt;
&lt;/selector&gt;
</code></pre>
