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); } 
  • Android ListView no se actualiza por Filtro
  • Animación de traducción para ocultar Vista
  • Cómo agregar divisores entre los elementos deshabilitados en ListView? - Lollipop
  • Cómo crear un menú contextual en un elemento ListView en Android?
  • ¿Cómo aplicar setItemChecked (position, true) con RecyclerView en Android?
  • Gif no animado en el listview personalizado
  • Pinch Android y Zoom de la imagen en la actividad
  • ExpandableListView siempre se derrumba
  • Agregar un fragmento como encabezado ListView
  • Listview en el lado de rleft y tabhost en el lado derecho con la proporción de 20:80 compartir pantalla
  • Vista de lista de fondo de pie de página en Android 2.3.3
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.