Kar*_*hik 2 java collections android hashmap
我想从其他类访问在主类中创建的hashmap集值.我已经按照它的步骤进行了操作但是我只在子类中获得了null值.这是代码
public class SoapTester extends Activity {
private static final String TAG = "Test";
public HashMap<String, String> map = new HashMap<String, String>();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
map.put("year", "Apple");
map.put("make", "Mango");
map.put("model", "Grape");
map.put("style", "Orange");
map.put("series", "Peach");
}
public HashMap<String, String> getHashmap() {
Log.v(TAG, "map2: E" + map);
return map;
}
public void setHashmap(HashMap<String, String> map) {
this.map = map;
getHashmap();
Log.v(TAG, "map1: E" + map);
}
}
Run Code Online (Sandbox Code Playgroud)
//子类
public class Tradein extends Activity {
private static final String TAG = "Test";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tradein);
SoapTester ex = new SoapTester();
HashMap<String, String> hm = ex.getHashmap();
Log.v(TAG, "hm: " + hm);//Getting Null Value here
}
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
使HashMap静态化
public static HashMap<String, String> map = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我们可以随意更改任何活动中的值,无论各种活动之间的确切控制流程如何.
请注意,只有在您不关心应用程序中同一活动(类)的多个副本的实例化时,才能使用此技巧,这是最容易实现的
第2步:Android; 实施全球国家; 在活动之间和整个应用程序之间共享数据
归档时间: |
|
查看次数: |
13149 次 |
最近记录: |