【问题标题】:To Pass an ArrayList without using Intent在不使用 Intent 的情况下传递 ArrayList
【发布时间】:2016-01-28 07:37:31
【问题描述】:

在我的应用程序中,我有一个 Splash Activity,它是启动器。在此活动中,我将调用一些 Web 服务并将数据保存在数组列表中。从 Splash Activity 转到 Login 页面,然后从那里转到 Dashboard 页面。 我想知道是否可以访问在应用程序启动期间保存在 Splash Activity 中的数组列表。

除了传递意图或将数组列表设为静态之外,还有其他方法吗

【问题讨论】:

  • 您可以将 arraylist 中的详细信息保存到文件或数据库中,或者如果不是太多,sharedpreferences...
  • 你可以使用单例。或者将您的 ArrayList 写入文件系统(SharedPreferences)。或者将其保存到 sqlite 数据库。有许多可能的解决方案,具体取决于您的用例。
  • class SplashActivity{public static List mList = new ArrayList();} class LoginActvt{public onCreate(){ SplashActivity.mList }}

标签: android android-activity arraylist


【解决方案1】:

您可以将ArrayList 保存在Singleton 类中并使用Singleton 访问它

public class AppDataManager {
     private static AppDataManager appDataManager;
     private ArrayList<String> arrString;

private AppDataManager() {

    }

    public static AppDataManager getInstance() {
        if (appDataManager == null) {
            synchronized (AppDataManager.class) {
                if (appDataManager == null) {
                    appDataManager = new AppDataManager();
                    return appDataManager;
                } else {
                    return appDataManager;
                }
            }
        } else {
            return appDataManager;
        }
    }

    public void setArray(ArrayList<String> data) {
         if(arrString == null)
             arrString = new ArrayList<String>();
         this.arrString.addAll(data);
    }

    public void getArray() { return this.arrString;}
}

希望这会有所帮助;

【讨论】:

    【解决方案2】:

    将其作为json保存在sharedPreferences中,并在使用时将其解析回arrayList。

    【讨论】:

      【解决方案3】:

      您可以将 SplashScreenActivity 中的数据设置为 CustomApplication

      【讨论】:

        猜你喜欢
        • 2018-05-24
        • 2020-08-04
        • 1970-01-01
        • 2011-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多