怎么在2个SurfaceView之间传递数据,比如要把上一个surfaceview的血量传到下一个surfaceview中去, 有人说是用SharedPreference,我用它在activity中写了2个方法,一个存数据,一个读数据,可是在surfaceview中调用异常,该怎么实现传递,求高手!!!!!(我用的是一个activity,多个surfaceview)答好了追加!!!!!

解决方案 »

  1.   

    一个Activity只要定义一个对象变量存储数据就可以了
    假设你这个数据是字符串类型的,那就定义一个
    private static String myData = null;存的时候:
    myData = "你的数据";读的时候:
    你的对象变量 = myData;没必要用到SharedPreference
      

  2.   


    同一个Activity里面,通过我说的这种方式传数据是不可能不行的,你可以在存值、取值语句后面分别加一个
    Log.i("存值", myData);Log.i("取值", myData);测试值的数据。至于你说的错误,应该是你其他程序代码中处理的问题。
      

  3.   

    你有没有用到线程什么的,是不是同步的问题,最好发点相关的code出来看看。
      

  4.   

    public void changView(){//进入下一个场景
    if (isdoor){
    if ((bmp_x >= SW - 180) && (bmp_y >= door_y && bmp_y <= door_y + 215)){
    main.life = life_width;//life_width是要传递的数据
    GameSurfaceViewOne2 game2 = new GameSurfaceViewOne2(iActivity);
    }
    }
    }public static int life;//activity里声明的变量public void surfaceCreated(SurfaceHolder arg0) {//surfaceview创建时调用
    // TODO Auto-generated method stub
    power_width = power.getWidth();
      

  5.   

    MainActivity main = new MainActivity();
      

  6.   


    你定义里面是life,传递的却是life_width。
      

  7.   

    这个activity没有这样用的,activity是系统来创建,不能这样自己new.
    改掉吧
      

  8.   

    啊,activity怎么改?
    life_width是要存储的数据
      

  9.   


    你定义的是life,传递却用life_width,当然会有问题。你必须要用同一个。