标签:
昨天学习了一下用volley通过get和post对网络进行操作,在里面提到了一个叫application这个类,在这类有他自己的生命周期,与web的application非常相似,从生命的开始到生命的结束,是一个全局的会话,作用域非常广,而且Android也提供了一个默认的调用,我们平时不用到他也不用管。当时我学习volley的时候他主要是为了创建volley对象,给他一个全局。后来我就想,既然是全局,那么我们是不是可以在里面存储一些我们公共的数据呢,免得到时写同样的方法,和参数。带着这疑问,我就开始我的操作了。
首先。我们自定义一个application的类,用于存储我们的数据
package com.example.aplicationdemo; import java.util.HashMap; import java.util.Map; import android.app.Application; public class MyApplication extends Application { private static Map<String, Object> map; @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); map = new HashMap<String, Object>(); } public static Map<String, Object> getMap() { return map; } }
package com.example.aplicationdemo; import java.util.Map; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.EditText; import android.widget.ImageView; public class MainActivity extends Activity { private EditText editText; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.txt); img = (ImageView) findViewById(R.id.img); findViewById(R.id.btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String edString = editText.getText().toString().trim(); int imgs = R.drawable.tg; Map<String, Object> map = MyApplication.getMap(); map.put("txt", edString); map.put("img", imgs); Intent intent = new Intent(getApplicationContext(), My.class); startActivity(intent); } }); } }
package com.example.aplicationdemo; import java.util.Collection; import java.util.Iterator; import java.util.Map; import java.util.Set; import android.app.Activity; import android.media.Image; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class My extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.my); TextView t = (TextView) findViewById(R.id.t); ImageView img = (ImageView) findViewById(R.id.ig); Map<String, Object> map = MyApplication.getMap(); //获取map的键 Set<String> set = map.keySet(); if (set != null) { Iterator<String> it = set.iterator(); while (it.hasNext()) { String st = it.next(); //对他的键进行匹配,以免导致数据匹配异常 if (st.equals("txt")) { Object value = map.get(st); t.setText(value.toString()); } else if (st.equals("img")) { Object value = map.get(st); int i = (int) value; img.setImageResource(i); } } } } }这是我的学习笔记。
标签:
原文地址:http://blog.csdn.net/arryluo123/article/details/51351192