HashMapを使用して、入力に基づいて出力を最初に決定する必要があるアクティビティがあります。私はそれに25ペアを保管しています。
問題は、アクティビティが開始するたびに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();
それでもデータを永続的に保存する必要がある場合は、ここにリストされている 5 つの方法のいずれかを選択できます。HashMap は Serializable を実装しているので、私なら SharedPreferences を使用するでしょう。
EDIT Mertの答えは、使用している文字列が変わらない場合に最適です。代わりに文字列リソースを使用してください。しかし、かなりの量の操作を行う必要がある場合でも、コレクションの利便性により、私の回答でのアプローチが価値のあるものになる可能性があります。
それはあなたの文字列をどのように使用するかによって異なります..
すべてが固定され、恒久的である場合は、それらを文字列 XML に格納できます。
アプリケーションの実行のみを使用する場合は、クラスを作成して ApplicationContext に格納できます。
file/sqlite db またはユーザー設定を保持できます。