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.
- Agregar un fragmento como encabezado ListView
- Android Java; ¿Cómo puedo analizar un archivo JSON local de carpeta de activos en un ListView
- No se puede actualizar / actualizar listview en un fragmento de otro fragmento en ViewPager
- ¿Cómo puedo hacer que una celda en un ListView en Android se expanda y contraiga verticalmente cuando se toca?
- Cambiar la listaVer el color seleccionado en Android
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.
- Cómo agregar un pie de página en ListView?
- ¿Cómo reproducir varios vídeos en una vista de lista con MediaPlayer?
- Cómo diseñar o diseñar correctamente un cajón de navegación de Android
- Cómo ocultar el popup de filtro en ListView en Android?
- Animar las transiciones selector / estado
- ¿Qué hace el segundo parámetro en AddHeaderView en la clase ListView?
- Auto oculta el teclado después de desplazarse ListView en android
- Cómo obtener la lista de datos en Tabbed Actvity?
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); }
- ¿Cómo puedo iniciar sesión con facebook y obtener información de usuario para enviar mi db remoto desde la aplicación android
- Notificaciones de la API REST de Google Drive no funcionan para cambios en la carpeta de aplicaciones