Android最简单数据传递之通过单例模式实现参数传递

通过单例模式实现参数传递 

单例模式的特点就是可以保证系统中一个类有且只有一个实例。这样很容易就能实现, 
在A中设置参数,在B中直接访问了。这是几种方法中效率最高的。

1, 定义一个单实例的类

//单例模式
public class XclSingleton {

    //单例模式实例
    private static XclSingleton instance = null;

    //synchronized 用于线程安全,防止多线程同时创建实例
    public synchronized static XclSingleton getInstance() {
        if (instance == null) {
            instance = new XclSingleton();
        }
        return instance;
    }

    final HashMap<String, Object> mMap;

    public XclSingleton() {
        mMap = new HashMap<>();
    }

    public void put(String key, Object value) {
        mMap.put(key, value);
    }

    public Object get(String key) {
        return mMap.get(key);
    }

}

  2, 设置参数 

//通过单例模式传参数的例子
 XclSingleton.getInstance().put("key1", "value1");
 XclSingleton.getInstance().put("key2", "value2");

 Intent intentSingleton = new Intent();
 intentSingleton.setClass(MainActivity.this,
         SingletonActivity.class);
 startActivity(intentSingleton);

 3,接收参数

this.setTitle("单例模式例子");

        //接收参数
  HashMap<String, Object> map = XclSingleton.getInstance().mMap;
    String sResult = "map.size() =" + map.size();

    //遍历参数
    Iterator iter = map.entrySet().iterator();
    while (iter.hasNext()) {
        Map.Entry entry = (Map.Entry) iter.next();
        Object key = entry.getKey();
        Object value = entry.getValue();
        sResult += "\r\n key----> " + (String) key;
        sResult += "\r\n value----> " + (String) value;
    }

    TextView tv = findViewById(R.id.tv);
    tv.setText(sResult);

猜你喜欢

转载自blog.csdn.net/weixin_42744183/article/details/89185817
今日推荐