gpt4 book ai didi

java - 如何从 Android 中的任何 Activity 访问未存储在数据库中的数据?

转载 作者:行者123 更新时间:2023-11-30 04:52:28 24 4
gpt4 key购买 nike

我将数据传递给 ListView 以显示一些餐馆名称。现在,当我点击一个项目时,我想开始另一个 Activity 来显示更多餐厅数据。我不确定该怎么做。我应该通过 intent 对象将所有餐厅数据打包传递吗?或者我应该只传递餐厅 ID 并在其他 Activity 中获取数据吗?在这种情况下,如何从其他 Activity 访问我的 restaurantList?无论如何,如何从我点击的餐厅获取数据( View 仅包含名称)?

任何帮助,欢迎指点!

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;
}
}

餐厅.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;
}
}

最佳答案

您无法访问来自其他 Activity 的数据。如果您需要通过单击列表中的项目启动的 Activity 中的数据,则通过消息包将其传递给新 Activity 。

如果您只将 id 传递给下一个 Activity ,您可以从数据库或互联网重新加载餐厅,但您无法从第一个 Activity 中使用的列表中检索它。

如果餐厅需要大量创建您可以自己实现的对象 application subclass并将餐厅列表附加到此应用程序子类。现在您可以像这样访问列表:

shopList = (YourSubclass)getApplication().getRestaurantList()

这会导致您的购物 list 在您的应用程序运行时内存中,即使该应用程序处于后台并且所有 Activity 都已暂停。

关于java - 如何从 Android 中的任何 Activity 访问未存储在数据库中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com