Je passe des données à un ListView pour afficher certains noms de restaurants. Maintenant, lorsque vous cliquez sur un article, j'aimerais commencer une autre activité pour afficher plus de données sur les restaurants. Je ne suis pas sûr de la façon de le faire. Dois-je transmettre toutes les données du restaurant dans un paquet à travers l'objet d'intention? Ou dois-je simplement passer l'identifiant du restaurant et obtenir les données dans l'autre activité? Dans ce cas, comment puis-je accéder à ma liste de restaurants de l'autre activité? Dans tous les cas, comment puis-je obtenir des données du restaurant sur lequel j'ai cliqué (la vue ne contient que le nom)?Comment accéder aux données non stockées dans une base de données à partir de n'importe quelle activité dans Android?
Toute aide, pointeurs bienvenus!
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;
}
}