Thankx Romain, I discovered that and I was posting the answer too :-). The question now is: why the second setState did what the first didn't?
Thankx again Bye Max On 26 Ago, 18:20, Romain Guy <[email protected]> wrote: > 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

