Java 如何修改ListView的ArrayList,但在不同的活动中修改ListView和ArrayList

Java 如何修改ListView的ArrayList,但在不同的活动中修改ListView和ArrayList,java,android,listview,arraylist,Java,Android,Listview,Arraylist,我会解释我的问题 我有两门课: MyListViewClassActivity实现可序列化,因此可以使用intent putExtra进行解析 肌代谢活性 在MyListViewClassActivityi内部,处理ListView和名为alMyData的初始ArrayList MyListViewClassActivity将意图/调用名为MyOtherClass的新活动,我将输入额外的alMyData,我可以告诉您alMyData解析正确,其中包含所有数据 MyOtherClassActivi

我会解释我的问题

我有两门课:

MyListViewClassActivity实现可序列化,因此可以使用intent putExtra进行解析 肌代谢活性 在MyListViewClassActivityi内部,处理ListView和名为alMyData的初始ArrayList

MyListViewClassActivity将意图/调用名为MyOtherClass的新活动,我将输入额外的alMyData,我可以告诉您alMyData解析正确,其中包含所有数据

MyOtherClassActivity将向alMyData添加新数据

我将关闭MyTherClassActivity,使其再次显示MyListViewClassActivity。在MyListViewClassActivity中,已恢复该适配器。notifyDataSetChanged

我的问题是:

当在MyListViewClassActivity中恢复时,数据不会增加,我可以肯定已经在MyOtherClassActivity中添加了新数据

为什么??请给我解释和解决办法


谢谢。

我想你并不真正了解android及其工作原理。你不应该通过额外的数据列表

看,Android是一种MVC,它不是安静的,但仍然可以帮助你理解其中的机制

你应该为你的数据建立一个模型。然后你的活动就成了控制器

你也可以看看。这是在androdi上显示列表的正确方法。此外,如果你使用Android Studio,我敢肯定你会使用它,你可以用efault模型和所有你需要的东西生成它们

编辑: 我的建议是你使用那种课程

package com.polytech.unice.tobeortohave.compare.dummy;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Helper class for providing sample content for user interfaces created by
 * Android template wizards.
 * <p>
 * TODO: Replace all uses of this class before publishing your app.
 */
public class DummyContent {

/**
 * An array of sample (dummy) items.
 */
public static final List<DummyItem> ITEMS = new ArrayList<>();

/**
 * A map of sample (dummy) items, by ID.
 */
public static final Map<String, DummyItem> ITEM_MAP = new HashMap<>();

private static final int COUNT = 25;

static {
    // Add some sample items.
    for (int i = 1; i <= COUNT; i++) {
        addItem(createDummyItem(i));
    }
}

private static void addItem(DummyItem item) {
    ITEMS.add(item);
    ITEM_MAP.put(item.id, item);
}

private static DummyItem createDummyItem(int position) {
    return new DummyItem(String.valueOf(position), "Item " + position, makeDetails(position));
}

private static String makeDetails(int position) {
    StringBuilder builder = new StringBuilder();
    builder.append("Details about Item: ").append(position);
    for (int i = 0; i < position; i++) {
        builder.append("\nMore details information here.");
    }
    return builder.toString();
}

/**
 * A dummy item representing a piece of content.
 */
public static class DummyItem {
    public final String id;
    public final String content;
    public final String details;

    public DummyItem(String id, String content, String details) {
        this.id = id;
        this.content = content;
        this.details = details;
    }

    @Override
    public String toString() {
        return content;
    }
}
}
这是您的RecyclerView或ListView的模型。当然,您需要一个自定义Addapter来处理此数据格式


但这样你就可以在应用程序的任何地方添加或删除列表中的数据。

不要解释代码。请改为提供a。向我们显示您的编码是否可以在不使用意图的情况下将ArrayList从a活动传递到B活动?顺便说一下,我的ArrayList是ArrayList myList=new ArrayList;是的,从技术上讲,您可以做到这一点,但thta意味着您必须序列化数据以进行反序列化,即使您使用的是可打包数据而不是可序列化数据,您将使用比您应该使用的更多的资源。我的意思是,你想要实现的并不是做事情的最佳方式。当我使用Serializable时,看起来像是通过值而不是引用。使用Parcealable是否成为参考?我不确定,但我不这么认为。如果我没记错的话,区别主要在于表演。