使用上一个活动中的项目填充ListView

时间:2017-01-15 14:10:48

标签: android listview gridview

我是Android编程的新手,还在教自己编写代码。

目前我正在教自己关于GridViews并仍然使用教程编写该项目,所以我现在没有任何东西可以显示,但基本思路如下......

如果我在第一个活动中在GridView中有杂货图像,当您点击图像时,您将能够打开一个包含更大图像的新活动,并且您可以输入您需要的数量,例如5个苹果管他呢。

所有这一切对我来说或多或少都很清楚。

但是如何使用ListView将数字和图像发送到新的(第三)活动,ListView将列出您需要在杂货店购买的所有商品?如果您在上一个活动中使用大图片输入数字并单击“确定”或“添加”按钮或其他任何内容并且不能完整列出所有内容,我将如何仅使用项目填充列表?

谢谢!

2 个答案:

答案 0 :(得分:0)

一开始很难,但您可以使用SQLiteDatabase来存储数据。 这对你来说不是一个快速的解决方案,但如果你认真学习android,那绝对值得学习。这是官方资料的链接: https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html

我个人使用过本教程: http://www.androidwarriors.com/2016/02/android-sqlite-database-tutorial-sqlite.html?m=1

答案 1 :(得分:0)

在多个活动或片段之间共享一些数据是一种非常常见的情况。解决这个问题的一种方法是实施Singleton Pattern

在您的情况下,您可以为您的目的设计某种数据结构,并在共享单例类中进行管理。例如:

public class ShoppingListManager {

    private static ShoppingListManager instance = new ShoppingListManager();

    private List<ShoppingItem> shoppingList;

    public static ShoppingListManager getInstance() {
        return instance;
    }

    public List<ShoppingItem> getShoppingList() {
        return shoppingList;
    }

    public void addShoppingItem(ShoppingItem item) {
        this.shoppingList.add(item);
    }

    ...

    // Make the constructor private so that this class cannot be instantiated
    private ShoppingListManager(){
        shoppingList = new ArrayList<String>();
    }
}

然后,您可以在代码中的任何位置访问您的数据,并以您喜欢的任何方式管理共享数据。

ShoppingListManager.getInstance().getShoppingList();

// You can add items in any activity
ShoppingListManager.getInstance().addShoppingItem(item);

要记住从不在单例类中存储上下文,因为它会导致内存泄漏。