Android:存储字符串对的好方法

时间:2012-07-13 20:55:25

标签: android hashmap

我有一个Activity,首先需要在HashMap的帮助下根据输入确定输出。我在里面存放了25对。

问题是每次活动开始时HashMap都会初始化。这让我想到了存储这些对的最佳方式 - 它们是否应该在“外部资源”中,或者可能是其他解决方案 - 来使这些对持续存在?

2 个答案:

答案 0 :(得分:1)

将hashmap中的数据放入某个持久存储中可能无法帮助您在创建活动时初始化hashmap。如果您的应用程序经常使用此活动,那么将Hashmap作为字段存储在Application类中,然后通过应用程序上下文从任何活动访问可能更有价值。

    SampleApplication extends Application{
        private HashMap<String,String> mMap = null;

        public void onCreate(){
            //initialize your hashmap here
            ...
        }

        public getHashMap{
            return this.mMap;
        }
     }

要从项目中的任何活动获取地图,只需使用以下代码:

    HashMap<String,String> map = ((SampleApplication)getApplicationContext()).getHashMap();

如果您仍需要持久存储数据,则可以选择列出here列出的五种方法之一。 HashMap确实实现了Serializable,所以如果是我的话,我可能会使用SharedPreferences。

编辑如果您使用的字符串永远不会更改,Mert的答案很棒,只需使用字符串资源即可。但是如果你需要进行相当多的操作,集合的便利性仍然可以使我的答案中的方法值得。

答案 1 :(得分:0)

这取决于你如何使用你的弦乐..

如果所有内容都固定且非常重要,您可以将它们存储在String XML上。

如果仅使用应用程序运行,则可以在ApplicationContext中创建类并存储。

您可以保留文件/ sqlite数据库或用户设置。