2017-01-22 98 views
0

因此,我製作了一個Cookie Clicker應用程序,以幫助我開始學習如何使用Android Studio在Android上進行編程。
但我需要一種方法來保存玩家所擁有的cookie數量,所以當他退出遊戲並回來時,他們將被保存。
這是代碼我目前:如何在Android中保存數據?

MainActivity.java:

package com.android.example; 

import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ImageButton; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

      /* Sound */ 
     final MediaPlayer cookieSound = MediaPlayer.create(this, R.raw.cookie_eat_short); 

     ImageButton playCookieSound = (ImageButton) this.findViewById(R.id.cookie_button); 

     playCookieSound.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       cookieSound.start(); 
       /* End of Sound */ 

       /* The following lines add 1 to the score and then display it. */ 
       scoreCookies++; 
       display(scoreCookies); 
      } 

     }); 

    } 

    /* Initializing the score to 0 
    * This is also what I want to change, make it set the score to the saved score.*/ 
    int scoreCookies = 0; 

    /* This method displays the score on the screen. */ 
    private void display(int number) { 
     TextView quantityTextView = (TextView) findViewById(R.id.score_text_view); 
     quantityTextView.setText("" + number); 
    } 
} 

activity_main.xml中:

<ImageButton 
    android:id="@+id/cookie_button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginBottom="124dp" 
    android:background="@android:color/transparent" 
    android:scaleType="fitStart" 
    app:srcCompat="@drawable/cookiepic" /> 

<TextView 
    android:id="@+id/score_text_view" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="52dp" 
    android:text="0" 
    android:textSize="42sp" 
    android:textAppearance="@style/TextAppearance.AppCompat.Headline" /> 

預先感謝幫助我:)

+0

請只是看看谷歌或其他搜索引擎。至少有50000篇關於它的文章。 – creativecreatorormaybenot

+0

你應該閱讀這[SharedPref](http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit-values) – MohammedAlSafwan

回答

1

你可以使用共享首選項來保存少量數據。

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putInt(getString(R.string.saved_high_score), newHighScore); 
editor.commit(); 

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 
int defaultValue = getResources().getInteger(R.string.saved_high_score_default); 
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);