You are using a custom state that does not map to the built-in
state_selected. Instead of doing this, just call
setSelected(true/false) on your textView. There's nothing else to do.

On Thu, Aug 26, 2010 at 12:50 AM, maxandroid <[email protected]> wrote:
> Hi all,
> I have a strange problem with StateListDrawable or maybe (probably)
> I'm missing something. I created a test application for it and the
> same problem occurs. So, this is my StateListDrawable resourse in file
> test_selection.xml
>
>    <?xml version="1.0" encoding="utf-8"?>
>    <selector xmlns:android="http://schemas.android.com/apk/res/
> android">
>     <item android:state_selected="true">
>      <shape android:shape="rectangle" android:background="#ff0000">
>       <corners android:radius="10dp" />
>       <gradient android:startColor="#ff5555"
>        android:endColor="#ff5555" android:angle="0" />
>      </shape>
>     </item>
>     <item android:state_selected="false">
>      <shape android:shape="rectangle" android:background="#eeeeee">
>       <corners android:radius="10dp" />
>       <gradient android:startColor="#eeeeee"
>        android:endColor="#eeeeee" android:angle="0" />
>      </shape>
>     </item>
>    </selector>
>
> It's a very simple selector that draw a red color for selected state
> and a white rect for the unselected one.
>
> My main.xml template is very simple. I simply use a TextView that uses
> the selection as background.
>
>    <?xml version="1.0" encoding="utf-8"?>
>    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> android"
>     android:orientation="vertical" android:layout_width="fill_parent"
>     android:layout_height="fill_parent">
>     <TextView android:layout_width="fill_parent"
>      android:layout_height="wrap_content" android:text="@string/
> hello"
>      android:textSize="30dp" android:id="@+id/test_view_example"
> android:background="@drawable/test_selection"/>
>     <Button android:layout_width="wrap_content"
>      android:layout_height="wrap_content" android:id="@+id/refresh"
>      android:onClick="updateView" android:text="refresh"></Button>
>    </LinearLayout>
>
> My Activity code is also very simple.
>
>    public class TestDrawableStateActivity extends Activity {
>
>     private final static int[] SELECTED_STATE =
> { android.R.attr.state_selected };
>     private final static int[] UNSELECTED_STATE = {};
>
>     private TextView textView;
>
>     /** Called when the activity is first created. */
>     @Override
>     public void onCreate(Bundle savedInstanceState) {
>      super.onCreate(savedInstanceState);
>      setContentView(R.layout.main);
>      textView = (TextView) findViewById(R.id.test_view_example);
>     }
>
>     @Override
>     protected void onResume() {
>      super.onResume();
>      // Carichiamo la Drawable
>      if(textView.getBackground().setState(SELECTED_STATE)){
>       textView.invalidate();
>      }
>     }
>
>     public void updateView(View view) {
>      if(textView.getBackground().setState(SELECTED_STATE)){
>       textView.invalidate();
>      };
>     }
>    }
>
> When Activity starts I try to set the state of my Drawable (the
> StateListDrawable) with the value SELECTED.
> It seems all very simple.... but the problem is that the state is not
> shown. If, later, I click a button and execute the method updateView()
> the state changes.
> Where is my problem? Where am I wrong?
>
> Thankx a lot
> Max
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Romain Guy
Android framework engineer
[email protected]

Note: please don't send private questions to me, as I don't have time
to provide private support.  All such questions should be posted on
public forums, where I and others can see and answer them

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to