Android -保存游戏-文本文件



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

所以我想问的是如何使用文本文件创建一个保存文件。

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.
}

正如@Mariano所说:SharedPreferences是一个保存东西的好地方。SharedPreferences的优点是它不需要任何额外的权限。

不过,根据您的需要,还有其他选择。你可以写入外部存储(这需要WRITE_EXTERNAL)权限,也许对你来说更有趣的是使用谷歌提供的保存游戏状态的服务。上面有一些很好的例子可以参考

最新更新