我在编写贪吃蛇的时候,主要的程序参考API中的代码,其中有三个文件,分别为snake.java和snakeview.java和tileview.java。现在我想在这个基础上扩展,加上一些用户的信息,然后将这个用户的个人信息和最终的成绩保存起来,方便统计。现在我在这个基础上添加了一个editname的activity,让用户在这个activity中输入他的用户名,然后点击“保存”按钮,之后通过intent跳转到snake.java,进入贪吃蛇游戏。我现在已经可以将用户名通过intent传递到snake.java中,想在snakeview.java中获得这个用户名,以方便在游戏结束的时候可以将用户名和游戏成绩一块显示出来,由于我不是很清楚snake.java和snakeview.java之间的关系,请问怎么在snakeview.java中获得这个变量的值呢?希望可以得到解答,谢谢。

解决方案 »

  1.   

    你可以保存当前用户到sharePreference啊,snakeview就直接取了~
      

  2.   

    刚学android不久,第一次听说sharePreference,请指教。
      

  3.   

    谢谢你的解答,刚才google了一下,知道sharedPreference是一种存储方式。对于数据的存储,我采用的是android自带的sqlite数据库存储的
      

  4.   

    好像可以直接用Intent来传递吧
      

  5.   

    就一个用户名和简单的数据,不需要数据库,数据库的操作时间是比sharedpreference长的,而且数据库还要注意关闭等释放资源的问题,一旦忘了,java内存泄露是很难找的。
      

  6.   


    谢谢提醒,目前学习只接触到数据库,而且看视频,里面还没讲到关闭数据库等问题,我的代码里面也没有关闭数据库的语句。但是由于是毕设,时间紧,所以暂时就将就着用数据库存储吧,以后在学习使用sharedpreference操作。请问snake.java和snakeview.java之间是什么关系呢,这三个文件在manifest中只注册了一个,该怎么在snakeview.java中获得这个snake.java中的变量的值呢?
      

  7.   

    你不是用的数据库吗?在snakeview.java中讲变量的值保存在数据库,然后再snake.java中从数据库中取数据就行了啊
      

  8.   

    sharedPreference或直接将数据保存成static的
      

  9.   

    可以直接用Intent对象传送用户信息
    Intent intent=new Intent(Activity00.this,Activity00_snake.class);
    String name=input.getText().toString();//input为EditView对象
    Bundle bundle=new Bundle();
    bundle.putString("name", name);
    intent.putExtras(bundle);
    startActivity(intent);在目的Activity中获取相应数据
    Bundle bunde = this.getIntent().getExtras();   
    String playerName=bunde.getString("name");
      

  10.   

    snakeview.java中讲变量的值保存在数据库,然后再snake.java中从数据库中取数据就行了啊