Textview color de fondo no está cambiando en haga clic en popupwindow

Estoy utilizando PopUpwindow con textviews en él. El problema es cuando hago clic en cualquiera de los textvies el color de fondo no está cambiando aunque está cambiando cuando el textview se centra pero no en tecleo.

Después de hacer clic en estoy descartando la ventana emergente, y si no descarto la ventana emergente entonces el color de fondo cambia de acuerdo con el selector:

Este es mi selector de fondo textview:

<item android:state_focused="true" android:drawable="@drawable/focused" /> <item android:state_pressed="true" android:drawable="@drawable/pressed" /> <item android:drawable="@drawable/priornone" /> <!-- default --> </selector> 

En mi popupwindow todo lo que estoy haciendo es esto:

 TextView manage_list = (TextView)popupView.findViewById(R.id.manage_lists); manage_list.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { Intent myIntent = new Intent(v.getContext(),ManageList.class); popupWindow.dismiss(); startActivity(myIntent); }}); 

Archivo de diseño para popupwindow:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/pop_menu_bg" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/manage_lists" android:text="Manage lists" android:background="@drawable/my_drawable" > </TextView> </LinearLayout> 

Su comportamiento bastante extraño todo funciona bien si no descarto el popupwindow pero si despedir el popupwindow en el fondo de textview de clic no cambia.

¿Qué estoy haciendo mal? Cualquier ayuda será apreciada.

4 Solutions collect form web for “Textview color de fondo no está cambiando en haga clic en popupwindow”

Usted utilizará su TextView como Checkbox, ¿no?

Utilice una bandera booleana para probar esto.

 private boolean clicked = false; // ... mytextView.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v){ clicked = !clicked; if(clicked){ mytextView.setBackgroundColor(yourcolorclicked); }else{ mytextView.setBackgroundColor(yourcolorunclicked); } mytextView.invalidate(); } }); 

Creo que si usas el código anterior, estarás bien:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/focused" /> <item android:state_pressed="true" android:drawable="@drawable/activated" /> <item android:drawable="@drawable/priornone" /> </selector> 

No puede definir dos estados diferentes en un elemento.

Espero que ayude.

// necesitas eliminar android:state_pressed="true" cuando android:state_focused="true" también es verdad.

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/button_pressed" /> <!-- pressed --> <item android:state_focused="true" android:drawable="@drawable/button_focused" /> <!-- focused --> <item android:state_hovered="true" android:drawable="@drawable/button_focused" /> <!-- hovered --> <item android:drawable="@drawable/button_normal" /> <!-- default --> </selector> 

Consulte aquí:

EDIT: es necesario dar su atributo Linearlayout como android:clickable="false"

Compruebe si tiene un conflicto de nombres. En caso de que ninguno de sus cambios aparezca, la posibilidad de que no funcione debido a algún tipo de problema de nomenclatura conflictivo con una biblioteca importada podría ser su problema principal.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.