android如何保护intent参数,android 使用application解决intent 页面跳转传参限制

实现原理,把参数保存到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();

}

}

大功告成。

源码下载: 源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值