Actividad Recargar cada vez

Tengo una actividad con un ListView (ItemsActivity) que su contenido viene de una API de JSON. Cuando presiono un elemento en el ListView carga otra actividad con la información de detalles (DetailActivity). El problema es, cuando presiono el botón Atrás, ItemsActivity volver a cargar el ListView de nuevo.

No sé dónde puedo encontrar más información al respecto. Vine de iOS donde la pantalla anterior no es recargar cada vez.

Quiero mantener los datos ListView entre actividades. He probado para llamar a loadListItems () método de onResume (), pero el mismo resultado.

Aquí hay una breve muestra de mi código. Cualquier ayuda y sugerencias serán muy apreciadas.

/* ItemsActivity.java */ public class ItemsActivity extends AppCompatActivity { private ListView listItemView; private Movie[] movies; private ProgressBar progressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recycler); listItemView = (ListView) findViewById(R.id.listItemView); progressBar = (ProgressBar) findViewById(R.id.progressBar); loadListItems(); } private void loadListItems(){ // Http call ... // Iterate JSON and saving to movies array ... progressBar.setVisibility(INVISIBLE); ListAdapter adapter = new ListAdapter(ItemsActivity.this, movies); listItemView.setAdapter(adapter); } /* Adapter Class */ @Override public void onClick(View v) { Intent i = new Intent(this, DetailActivity.class); i.putExtra("item_id", 1); startActivity(i); } } 

Acabo de probar con un nuevo proyecto con 2 Actividades, ActivityOne y ActivityTwo. ActivityOne tiene un botón, cuando a presionado su carga ActivityTwo y cuando presiono el botón Atrás, en ActivityOne el método onCreate () se llama de nuevo.

Usted mencionó que "probé llamar al método loadListItems () de onResume () pero el mismo resultado". Este código onResume () es culpable.

OnResume () se llamará cada vez que su actividad se vuelve a enfocar. Si llama a loadListItems () en onResume (), se llamará cada vez que regrese de su segunda actividad a esta actividad. http://developer.android.com/reference/android/app/Activity.html#onResume ()

Una solución es usar StartActivityForResult y no StartActivity. A continuación, en la segunda actividad, anule el método onBackPressed y termine () la segunda actividad dentro de este método. Anule el método onActivityResult en su primera actividad y se llamará a esta actividad y no al método onCreate y no se volverá a cargar el ListView.

El problema era solamente cuando presioné el botón trasero de la barra de acción y lo arreglo con el método de onOptionsItemSelected.

 @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 
  • Error de aplicación debido a NullPointerException
  • ListViews - cómo utilizar la función ArrayAdapter.addAll () antes de la API 11?
  • El contenido del adaptador ha cambiado pero ListView no recibió una notificación, nada actualizado en el fondo
  • Listview con el grupo de títulos
  • Actualización de textview en la actividad una vez que se cambian los datos en la clase de adaptador
  • Forzar Android Fast Scroll Bar en ListViews para dibujar dentro de relleno
  • ListView dentro de LinearLayout no crecerá para mostrar todos los niños
  • ConvertView en GetView ()
  • Vista de lista con elementos de vista personalizados con superposiciones parciales (Android)
  • Sincronizar 2 ListViews desplazándose
  • Vincular inconsistencia
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.