¿Cómo se puede acceder a los datos que no están almacenados en una base de datos de cualquier actividad en Android?

StackOverflow https://stackoverflow.com/questions/2856454

Pregunta

Estoy de paso de datos a un ListView para mostrar algunos nombres de restaurantes. Ahora al hacer clic en un elemento que me gustaría empezar otra actividad para mostrar más datos restaurante. No estoy seguro de cómo hacerlo. ¿Debo pasar todos los datos del restaurante en un paquete a través del objeto intención? O tendría que sólo tiene que pasar el id restaurante y obtener los datos en la otra actividad? En ese caso, ¿cómo puedo acceder a mi restaurantList de la otra actividad? En cualquier caso, ¿cómo puedo obtener los datos del restaurante en el que se hace clic (la vista sólo contiene el nombre)?

Cualquier ayuda, punteros Bienvenido!

ListView lv= (ListView)findViewById(R.id.listview);

lv.setAdapter( new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,restaurantList.getRestaurantNames()));

lv.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        Intent i = new Intent(Atable.this, RestaurantEdit.class);
        Bundle b = new Bundle();
        //b.putInt("id", ? );
        startActivityForResult(i, ACTIVITY_EDIT);
    }
});

RestaurantList.java

package org.digitalfarm.atable;
import java.util.ArrayList;
import java.util.List;

public class RestaurantList {

    private List<Restaurant> restaurants = new ArrayList<Restaurant>();

    public List<Restaurant> getRestaurants() {
        return this.restaurants;
    }

    public void setRestaurants(List<Restaurant> restaurants) {
        this.restaurants = restaurants;
    }

    public List<String> getRestaurantNames() {      

        List<String> restaurantNames = new ArrayList<String>();

        for (int i=0; i<this.restaurants.size(); i++) {
            restaurantNames.add(this.restaurants.get(i).getName());
        }

        return restaurantNames;
    }
}

Restaurant.java

package org.digitalfarm.atable;

public class Restaurant {

    private int id;
    private String name;        
    private float latitude;
    private float longitude;

    public int getId() {
        return this.id; 
    }

    public void setId(int id) {
        this.id = id;
    }       

    public String getName() {
        return this.name;   
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getLatitude() {
        return this.latitude;
    }

    public void setLatitude(float latitude) {
        this.latitude = latitude;
    }

    public float getLongitude() {
        return this.longitude;
    }

    public void setLongitude(float longitude) {
        this.longitude = longitude;
    }
}
¿Fue útil?

Solución

No se puede acceder a los datos procedentes de otras actividades. Si necesita datos de la actividad que se inicia a través de clic en el elemento en la lista de pasarlo a la nueva actividad a través del grupo de mensajes.

Si pasa sólo el DNI a la siguiente actividad que podría recargar el restaurante de una base de datos o desde Internet, pero usted no puede recuperar de la lista utilizada en la primera actividad.

Si los restaurantes son pesados ??para crear objetos que pudieran poner en práctica es el propietario aplicación subclase y adjuntar la lista de restaurante para esta subclase aplicación. Ahora se puede acceder a la lista de esta manera:

ShopList = (YourSubclass) getApplication (). GetRestaurantList ()

Esto daría lugar a su ShopList estar en la memoria el tiempo de ejecución de Wohl que la aplicación incluso si la aplicación está en el fondo y todas las actividades se detuvo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top