Как данные могут быть сохранены в DB, ​​доступ к любой активности в Android?

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

Вопрос

Я передаю данные в список, чтобы отобразить некоторые имена ресторанов. Теперь при нажатии на элемент, который я хотел бы начать другое действие, чтобы отобразить больше данных ресторана. Я не уверен, как это сделать. Должен ли я передавать все данные ресторана в комплекте через объект намерения? Или я просто передаю идентификатор ресторана и получите данные в другой деятельности? В этом случае, как я могу получить доступ к моему ресторану от другой деятельности? В любом случае, как я могу получить данные из ресторана, нажал, нажал только имя)?

Любая помощь, указатели добро пожаловать!

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;
    }
}
Это было полезно?

Решение

Вы не можете получить доступ к данным из других видов деятельности. Если вам нужны данные в действии, который запускается через щелчок на элементе в списке, передайте его к новой активности через пункт сообщений.

Если вы проходите только идентификатор на следующую деятельность, вы можете перезагрузить ресторан из базы данных или из Интернета, но вы не можете получить его из списка, используемого в первой активности.

Если рестораны тяжелые для создания объектов, которые вы можете реализовать вас Подкласс приложений И прикрепите список ресторанов к этому подклассу приложений. Теперь вы можете получить доступ к списку, как это:

ShopList = (YourSubclass) GetApplication (). GetRestaurantList ()

Это приведет к тому, что ваш магазин будет в памяти Wohl Runtime вас приложение, даже если приложение на заднем плане, и все действия приостановлены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top