Java Android-保存游戏-文本文件

Java Android-保存游戏-文本文件,java,android,Java,Android,我的问题是,如何使用文本文件保存文件。我想能够保存游戏,甚至在手机重新启动后加载 所以我要问的是如何使用文本文件创建保存文件 public class MainActivity extends AppCompatActivity { ImageButton Button,Button2,Button3,Button4,Button5,Button6,Button7,Button8,Button9,Button10; long count = 0; MediaPlayer mp, mp_pill

我的问题是,如何使用文本文件保存文件。我想能够保存游戏,甚至在手机重新启动后加载

所以我要问的是如何使用文本文件创建保存文件

public class MainActivity extends AppCompatActivity {

ImageButton Button,Button2,Button3,Button4,Button5,Button6,Button7,Button8,Button9,Button10;
long count = 0;
MediaPlayer mp, mp_pilla,mp_slua;
@Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final TextView textview = (TextView) findViewById(R.id.textView);
    mp = MediaPlayer.create(MainActivity.this, R.raw.nyaaw);
    mp_pilla = MediaPlayer.create(MainActivity.this, R.raw.pillabli);
    mp_slua = MediaPlayer.create(MainActivity.this, R.raw.slua);
    Button = (ImageButton) findViewById(R.id.myButton);
    Button2 = (ImageButton) findViewById(R.id.myButton2);
    Button3 = (ImageButton) findViewById(R.id.myButton3);
    Button4 = (ImageButton) findViewById(R.id.myButton4);
    Button5 = (ImageButton) findViewById(R.id.myButton5);
    Button6 = (ImageButton) findViewById(R.id.myButton6);
    Button7 = (ImageButton) findViewById(R.id.myButton7);
    Button8 = (ImageButton) findViewById(R.id.myButton8);
    Button9 = (ImageButton) findViewById(R.id.myButton9);
    Button10 = (ImageButton) findViewById(R.id.myButton10);

    textview.setText("0");


    ImageButton buttonsak = (ImageButton) findViewById(R.id.myButton);
    ImageButton buttonsak2 = (ImageButton) findViewById(R.id.myButton2);
    ImageButton buttonsak3 = (ImageButton) findViewById(R.id.myButton3);
    ImageButton buttonsak4 = (ImageButton) findViewById(R.id.myButton4);
    ImageButton buttonsak5 = (ImageButton) findViewById(R.id.myButton5);
    ImageButton buttonsak6 = (ImageButton) findViewById(R.id.myButton6);
    ImageButton buttonsak7 = (ImageButton) findViewById(R.id.myButton7);
    ImageButton buttonsak8 = (ImageButton) findViewById(R.id.myButton8);
    ImageButton buttonsak9 = (ImageButton) findViewById(R.id.myButton9);
    ImageButton buttonsak10 = (ImageButton) findViewById(R.id.myButton10);

    View.OnClickListener clicker = new View.OnClickListener() {
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.myButton:
                    count++;
                    mp.start();
                    textview.setText("" + count);
                    break;
                case R.id.myButton2:
                    if (count >= 50) {
                        count += 5;
                        mp_slua.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton3:
                    if (count >= 100) {
                        count += 10;
                        mp_pilla.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton4:
                    if (count >= 500) {
                        count += 20;
                        mp_slua.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton5:
                    if (count >= 2000) {
                        count += 50;
                        mp_slua.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton6:
                    if (count >= 5000) {
                        count += 100;
                        mp.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton7:
                    if (count >= 10000) {
                        count += 200;
                        mp_slua.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton8:
                    if (count >= 30000) {
                        count += 500;
                        mp_pilla.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton9:
                    if (count >= 100000) {
                        count += 1000;
                        mp.start();
                        textview.setText("" + count);
                    }
                    break;
                case R.id.myButton10:
                    if (count >= 250000) {
                        count += 2500;
                        mp_pilla.start();
                        textview.setText("" + count);
                    }
                    break;
                default:
                    break;
            }
        }
    };

    buttonsak.setOnClickListener(clicker);
    buttonsak2.setOnClickListener(clicker);
    buttonsak3.setOnClickListener(clicker);
    buttonsak4.setOnClickListener(clicker);
    buttonsak5.setOnClickListener(clicker);
    buttonsak6.setOnClickListener(clicker);
    buttonsak7.setOnClickListener(clicker);
    buttonsak8.setOnClickListener(clicker);
    buttonsak9.setOnClickListener(clicker);
    buttonsak10.setOnClickListener(clicker);
}

使用SharePreference以如下方式保存数据:

SharedPreferences.Editor editor = getSharedPreferences(SAVE_GAME, MODE_PRIVATE).edit();
editor.putString("game", "saved");
editor.commit();
SharedPreferences prefs = getSharedPreferences(SAVE_GAME, MODE_PRIVATE); 
String restoredText = prefs.getString("game", null);
if (restoredText != null) {
String name = prefs.getString("game", "state");// "state" is the default value.
}
并获得如下信息:

SharedPreferences.Editor editor = getSharedPreferences(SAVE_GAME, MODE_PRIVATE).edit();
editor.putString("game", "saved");
editor.commit();
SharedPreferences prefs = getSharedPreferences(SAVE_GAME, MODE_PRIVATE); 
String restoredText = prefs.getString("game", null);
if (restoredText != null) {
String name = prefs.getString("game", "state");// "state" is the default value.
}

正如@Mariano所说:共享参考是保存东西的好地方。SharedReferences的优点是它不需要任何额外的权限


不过,根据您的需要,还有其他选择。您可以向外部存储器写入(这需要write_external)权限,并且可能更有趣的是使用来保存游戏状态。这里有一些很好的例子供您学习。

为什么不使用SharedReferences?我如何在代码中实现它?我需要一个文本文件还是内部存储?复制并通过活动、片段等创建中的代码。。。SharedReference有一个自己的内部存储,它一直保存在那里,直到用户删除应用程序。即使用户更新应用程序,数据也会保持不变。当我粘贴代码时,我导入了一个类,但仍然有错误。检查下面的链接。我该怎么解决这个问题呢?SAVE_游戏只是一个字符串标签。在那里使用任意字符串。结束:@Override protected void onCreate(Bundle savedInstanceState){put this:private String SAVE_GAME=“GAME”;我做了所有这些,但游戏没有保存。我得到大约10分,然后重新启动手机,游戏仍然重置。