簡體   English   中英

如何在不同的活動中為ListView修改ArrayList但ListView和ArrayList

[英]How to modified an ArrayList for ListView but ListView and ArrayList in different Activity

我會解釋我的問題

我有2節課:

  • MyListViewClassActivity(實現可序列化,以便可以使用意圖putExtra進行解析)
  • MyOtherClassActivity

在MyListViewClassActivityi內部處理ListView和稱為alMyData的初始ArrayList

然后MyListViewClassActivity將意圖/調用名為MyOtherClass的新活動,我將放置額外的alMyData(我可以告訴您alMyData正確解析了其中的所有數據)

MyOtherClassActivity將向alMyData添加新數據。

我將關閉MyOtherClassActivity,以便再次出現MyListViewClassActivity。 在MyListViewClassActivity內部,具有onResume的adapter.notifyDataSetChanged。

我的問題 :

當MyListViewClassActivity中的onResume數據不增加時,我可以確定已經在MyOtherClassActivity中添加了新數據。

為什么呢 請給我解釋和解決方案。

謝謝。

我認為您不太了解android及其工作原理。 您不應該通過額外的數據列表。

看一下MVC模式 ,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來處理這種數據格式。

但是通過這種方式,您可以從應用程序中任何位置的列表中添加或刪除數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM