【android】Activity間のデータ共有
Android開発時にActivity間でデータ共有したい
いくつか手法はあるみたいで
?intentでパラメータとして渡す
?applicationをextendしたクラスを作成する
?共有クラスを作る
今回はActivity以外にも汎用的に利用したかったのと
ConcurrentHashMapを使ってみたかったので
?を作ってみた。
単純に全部staticにしてセットする変数名もhashとして
汎用性をもたせた。
じゃばらーには怒られそうな作りですが。
// ソース
import java.util.concurrent.ConcurrentHashMap; public class Shared { // hashmap static private ConcurrentHashMap<String,Object> map = new ConcurrentHashMap<String, Object>(); // set static public Object set(String key, Object val){ return Shared.map.put(key,val); } // get static public <T> T get(String key){ return (T)Shared.map.get(key); } }
// 使い方
※テキストデータを突っ込む
Shared.set("key1","val"); String data = Shared.get("key1");
※もちろん他の型もいける
Shared.set("key2", 1); int data = Shared.get("key2");