EditText Settext no funciona con Fragment

Tengo fragmentos para 3 estados de una pantalla; Agregar, editar y ver. En Añadir, creo una entidad y la guardo. La próxima vez que lo abra en el modo de vista y establecer el nombre de entidad utilizando

EditText entityName = (EditText) view.findViewById(R.id.entityName); entityName.setText(entity.getEntityname()); 

Hago clic en el botón de edición del modo de vista para abrir el modo de edición. Cambiar el nombre de la entidad aquí y guardarlo. Esto me lleva de nuevo a la pantalla de visualización. Pero me parece que el nombre de la entidad no se actualiza. He depurado y encontré que entity.getEntityname() está teniendo el valor correcto. No estoy seguro de por qué el texto de edición no toma un nuevo valor.

¿Algunas ideas?

Nota: Estoy usando la versión 2.2 de android

El EditText parece tener un problema con el restablecimiento de texto en onCreateView . Así que la solución aquí es restablecer el texto en onResume . Esto funciona.

También hay un problema en onActivityCreated. Restablezco el contenido de edittext en onStart y funciona. [Créditos para @savepopulation]

Como se mencionó anteriormente, el EditText parece tener un problema con el restablecimiento de texto en onCreateView.

Esto se debe a que una vez que se crea un fragmento, hasta el momento en que lo retiramos del backstack, su método onResume sería llamado como la vista no se crea de nuevo.

Así que la solución aquí es restablecer el texto en onResume. Esto funcionará en todos los tiempos, incluso si u bloqueo y desbloqueo ur pantalla mientras que el fragmento está abierto o que está regresando de otro fragmento

Sin embargo, si está estableciendo estos datos de un paquete es mejor tonsave que el valor de una variable de instancia causa el paquete puede llegar nulo amd u puede gett nulo puntero problemas entonces

También hay un problema en onActivityCreated. Restablezco el contenido de edittext en onStart y funciona.

De acuerdo con el @TusharVengrulekar, así es como debe implantar su Fragmento

 public class ActionBar extends Fragment { private TextView lbl_title; private String title; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_action_bar, container, false); title = "Contacts"; lbl_title = (TextView) view.findViewById(R.id.lbl_title); return view; } @Override public void onStart(){ super.onStart(); lbl_title.setText(title); } @Override public void onResume(){ super.onResume(); } } 

Hay algunas clases de View en Android que deben guardar su estado cuando se retira su contenedor. Fragment.onViewCreated () debe llamarse antes de View.onSaveInstanceState (). Por lo tanto, si establece un valor en el método Fragment.onViewCreated (). El valor debe ser borrado en el método View.onRestoreInstanceState (estado Parcelable).

Por ejemplo, la clase TextView, RecyclerView y así sucesivamente. Usted puede leer el código de TextView.java:

  public Parcelable onSaveInstanceState() { Parcelable superState = super.onSaveInstanceState(); // Save state if we are forced to final boolean freezesText = getFreezesText(); boolean hasSelection = false; int start = -1; int end = -1; .... if (freezesText || hasSelection) { SavedState ss = new SavedState(superState); .... } .... } 

Hay a params para controlar si se guarda el estado: "freezesText" y "hasSelection". TextView no se puede seleccionar, por lo que hasSelection es false. La función, getFreezesText (), devuelve false en la clase TextView también. Por lo tanto, TextView no guardaría el estado. El código de EditText.java:

  @Override public boolean getFreezesText() { return true; } 

EditText devuelve true, por lo que EditText debe guardar el estado.

Hay algún método para solucionar este error:

1.implementar EditText.getFreezesText () y devolver false, y borrar el estado de select en EditText

2.implementar onSaveInstanceState de EditText, devolver null.like esto:

  public Parcelable onSaveInstanceState() { super.onSaveInstanceState(); return null; } 

3.use EditText.setSaveEnable (false);

4.add param en xml "saveEnable = 'false'"

  • Formato android edittext para mostrar espacios después de cada 4 caracteres
  • Cambiar parte del color de texto dentro de un widget "EditText"
  • Android: quitar Enter Key de softkeyboard
  • Android EditText no puede manejar archivos grandes
  • Deshabilitar (positivo) el botón de AlertDialog por defecto
  • Tipo de entrada de EditText textCapSentences no funciona en Lollipop
  • ¿Cómo agregar margen entre EditText y Soft Keyboard?
  • Obtener palabra de EditText en la posición actual del cursor
  • Cómo hacer que EditText no cambie su tamaño automáticamente
  • Android: no se puede obtener valor de EditText dentro de Custom Dialog
  • El interfuncionamiento de TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.