2015-09-21 48 views
-1

我的问题是,如何使用文本文件制作保存文件。我希望能够保存游戏并在手机重新启动后加载。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); 
} 
+1

为什么不使用SharedPreferences? –

回答

3

使用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. 
} 
+0

如何将其实现到我的代码?我需要一个文本文件还是内部存储? – user3437864

+0

在您的Activity,Fragment等内部复制并移除代码onCreate ... SharedPreference拥有自己的内部存储,并保留在那里直到用户删除应用程序。即使用户更新应用程序,数据也会保留。 –

+0

当我粘贴代码时,我导入了1个类,但我仍然有错误。 http://imgur.com/jIMZz8Z检查下面的链接。我如何解决这个问题? – user3437864

1

正如@Mariano说:SharedPreferences是个好地方,以节省事情。 SharedPreferences的优点是它不需要任何额外的权限。

虽然有其他选择,但取决于您的需求。您可以写入外部存储器(需要WRITE_EXTERNAL)权限,并且您可能更感兴趣的是使用service that Google provides来保存游戏状态。那里有一些很好的例子供你关注。