我会解释我的问题
我有2个课程:
MyListViewClassActivityi内部处理ListView和初始ArrayList,名为alMyData
MyListViewClassActivity将意图/调用名为MyOtherClass的新活动,我将putExtra alMyData(我可以告诉你alMyData正确解析其中的所有数据)
MyOtherClassActivity将向alMyData添加新数据。
我将关闭MyOtherClassActivity,使其再次出现MyListViewClassActivity。在MyListViewClassActivity里面有onResume那个adapter.notifyDataSetChanged。
我的问题:
当MyListViewClassActivity中的onResume数据没有增加时,我可以肯定已经在MyOtherClassActivity中添加了新数据。
为什么?请给我解释和解决方案。
谢谢。
答案 0 :(得分:1)
我认为你并不真正了解android以及它是如何工作的。您不应该通过额外的数据列表传递数据列表。
看看MVC pattern,Android是一种MVC(不安静,但仍然可以帮助你理解机制)。
您应该拥有数据模型。然后你的活动就会成为控制者。
您也可以查看RecyclerView。这是在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来处理这种数据格式。
但是,您可以在应用中的任何位置添加或删除列表中的数据。