实现原理,把参数保存到application里面,到另一个页面再从application获取。
实现方式:
1.首先创建BaseApp.java
import android.app.Application;
import com.example.test.BaseActivity.JumpPara;
public class BaseApp extends Application {
private JumpPara jumpPara;
public JumpPara getJumpPara() {
return jumpPara;
}
public void setJumpPara(JumpPara paras) {
this.jumpPara = paras;
}
}
2.别急BaseActivity在这里
import java.util.HashMap;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
public class BaseActivity extends Activity {
public void jumpActivity(Class> cls) {
jumpActivity(cls, null);
}
public void jumpActivity(Class> cls, JumpPara paras) {
if (paras != null) {
BaseApp app = (BaseApp) this.getApplication();
app.setJumpPara(paras);
}
Intent intent = new Intent(this, cls);
startActivity(intent);
}
public JumpPara getJumpPara() {
BaseApp app = (BaseApp) this.getApplication();
return app.getJumpPara();
}
public class JumpPara {
Map currentParas = new HashMap();
public void put(String key, Object value) {
currentParas.put(key, value);
}
public Object get(String key) {
return currentParas.get(key);
}
public String getString(String key) {
return currentParas.get(key).toString();
}
public int getInt(String key) {
return (Integer) currentParas.get(key);
}
public long getLong(String key) {
return (Long) currentParas.get(key);
}
public boolean getBoolean(String key) {
return (Boolean) currentParas.get(key);
}
public Object getObject(String key) {
return currentParas.get(key);
}
public JSONObject getJsonObject(String key) {
return (JSONObject) currentParas.get(key);
}
public JSONArray getJSONArray(String key) {
return (JSONArray) currentParas.get(key);
}
@Override
protected void finalize() throws Throwable {
super.finalize();
currentParas = null;
}
}
}
3.页面跳转MainActivity.java
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void go(View btn) {
JumpPara paras = new JumpPara();
List data = new ArrayList();
data.add("1");
data.add("1AAA");
data.add("ASDAS1");
data.add("ASDAS1");
data.add("1CVSD");
data.add("1SDFCA");
data.add("1ADSASFAS");
paras.put("para1", 1);
paras.put("para2", "第二个参数");
paras.put("para3", data);
jumpActivity(ChilldActivity.class, paras);
}
}
4.ChilldActivity获取参数
import java.util.List;
import android.os.Bundle;
import android.widget.Toast;
public class ChilldActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_child);
JumpPara paras = getJumpPara();
@SuppressWarnings("unchecked")
List data = (List) paras.get("para3");
Toast.makeText(
this,
"传入参数" + paras.getInt("para1") + "2" + paras.getString("para2")
+ "参数3" + data.size(), 1000).show();
}
}
大功告成。
源码下载: 源码