¿Cómo puedo cambiar colores en mi StateListDrawable?

Tengo el siguiente selector para un botón (con 2 estados, regulares y presionados):

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <solid android:color="#3498DB" /> <stroke android:width="1dp" android:color="#2980B9" /> <corners android:radius="0dp" /> <padding android:left="12dp" android:top="12dp" android:right="12dp" android:bottom="12dp" /> </shape> </item> <item> <shape> <solid android:color="#2980B9" /> <stroke android:width="1dp" android:color="#2980B9" /> <corners android:radius="0dp" /> <padding android:left="12dp" android:top="12dp" android:right="12dp" android:bottom="12dp" /> </shape> </item> </selector> 

Mi botón tiene lo siguiente que especifica el fondo como el selector anterior:

 <Button android:id="@+id/button_LaunchShiftsGame" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ShiftsMode" android:background="@drawable/selector_Button" style="@style/Button_Text" /> 

Necesito tener acceso y cambiar los colores para ambos estados del código cuando la actividad carga.

¿Cómo puedo hacer esto?

  StateListDrawable gradientDrawable = (StateListDrawable) inflatedView.getBackground(); DrawableContainerState drawableContainerState = (DrawableContainerState) gradientDrawable.getConstantState(); Drawable[] children = drawableContainerState.getChildren(); LayerDrawable selectedItem = (LayerDrawable) children[0]; LayerDrawable unselectedItem = (LayerDrawable) children[1]; GradientDrawable selectedDrawable = (GradientDrawable) selectedItem.getDrawable(0); GradientDrawable unselectedDrawable = (GradientDrawable) unselectedItem.getDrawable(0); selectedDrawable.setStroke(STORKE_SIZE, NOTIFICATION_COLOR); unselectedDrawable.setStroke(STORKE_SIZE, NOTIFICATION_COLOR); 

He usado esto para cambiar el golpe, puede ser útil.

  • Xamarin Android: Mantenga el control con Alert Dialog hasta que se haga clic en un botón
  • Error de depurador de Android (MonoDroid)
  • ¿Por qué no puedo establecer la elevación en una vista que agrego mediante programación?
  • Tabs Deslizar dirección en la aplicación de Android de derecha a izquierda
  • Xamarin android guardar archivo de texto
  • Guardar Bitmap en un archivo - Xamarin, Monodroid
  • ¿Cómo puedo usar el cliente ServiceStack con Xamarin.Android Licencia Indie
  • 'Jobject' no debe ser IntPtr.Zero al ajustar el texto textview en MonoDroid
  • Necesita un ejemplo de tomar una imagen con MonoDroid y MVVMCross
  • No se pueden crear archivos en Android con Xamarin
  • InflateException con TextInputLayout y AlertDialog
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.