2015-09-21 51 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來保存遊戲狀態。那裏有一些很好的例子供你關注。