Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android obtiene la vista de Preferencia en PreferenciaActividad

Me gustaría obtener View instancia que se utiliza para mostrar la preferencia específica en mi PreferenceActivity, así que puedo modificar sus propiedades, por ejemplo:

public class SettingsActivity extends PreferenceActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference); Preference pref = findPreference("key"); pref.getView().setVisibility(View.GONE); //not necessarily setVisibility, i hope you get my point } } 

Sólo encontré este método: getView (View convertView, ViewGroup parent) . Pero parece confuso para mí, que si quiero obtener Vista de mi preferencia, tengo que proporcionar vista y viewGroup como parámetros ??

¿Podría alguien explicar cómo usar este método, o señalar a otro método para obtener vista de mi instancia de preferencia.

PS: si es posible, preferiría no extender la clase de preferencia, pero no me importa si es necesario

  • Vista personalizada con diseño XML en Android
  • NullPointerException que no apunta a ninguna línea en mi código
  • Android - Creación de listview con encabezados flotantes
  • Derecho a la izquierda ProgressBar?
  • GetMeasuredWidth devuelve un valor totalmente erróneo
  • Inflación de un diseño xml en una clase de vista personalizada
  • Modificación de atributos anidados en un Layout incluido
  • Relación de aspecto fija
  • 3 Solutions collect form web for “Android obtiene la vista de Preferencia en PreferenciaActividad”

    No estoy seguro de cómo obtener la vista de una preferencia, pero si desea quitar la vista de la pantalla (establecer la visibilidad de View.gone) puede utilizar lo siguiente:

    GetPreferenceScreen (). RemovePreference (thePreference)

    PreferenceActivity hereda la clase ListActivity . ListActivity tiene un método llamado getListView() que devuelve el ListView que muestra sus preferencias.

    EDIT: Aquí está el código en mi comentario formateado:

     getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() { // ... put listener code here }); 

    Para obtener la vista de una preferencia deseada puede utilizar esto:

     @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); Preference preference=findPreference(“preferenceKey”); View preferenceView=getListView().getChildAt(preference.getOrder()); //Do your stuff } 

    Nota: No se puede hacer esto en el método onCreate porque lanzará una NullPointerException .

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