直截了当地说,我做了一个游戏,一旦用户完成一个级别,他们就会转移到下一个活动。所以基本上Activity1完成然后Activity 2加载等等。 我想保存他们获得的活动然后在主菜单上有一个继续按钮,它将在下次播放时加载它。到目前为止,我所做的是使用Int将进度保存到共享首选项。但我不知道如何调用值,以便继续按钮知道加载哪个活动,如果这样做。下面是我用来保存用户进度的代码,我以这种方式使用Int的感觉可能是错误的方式,所以任何建议都会很棒。我对android很新,所以很好的明确答案会让我不知所措哈哈哈哈:)
这是我成功的启动画面,我进行了保存:
public class success1 extends Activity {
private boolean mIsBackButtonPressed;
private static final int SPLASH_DURATION = 2000; // 2 seconds
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences sp =
this.getSharedPreferences("GameProgress",0);
SharedPreferences.Editor editor =
sp.edit();
editor.putInt("scene1",1);
editor.commit();
setContentView(R.layout.level_success);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
MediaPlayer player;
AssetFileDescriptor afd;
try {
// Read the music file from the asset folder
afd = getAssets().openFd("correct.mp3");
// Creation of new media player;
player = new MediaPlayer();
// Set the player music source.
player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),afd.getLength());
// Set the looping and play the music.
player.setLooping(false);
player.prepare();
player.start();
} catch (IOException e) {
e.printStackTrace();
finish();
}
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
finish();
if (!mIsBackButtonPressed) {
// start the home screen if the back button wasn't pressed already
Intent intent = new Intent(success1.this, scene2.class);
success1.this.startActivity(intent);
android.os.Process.killProcess(android.os.Process.myPid());
finish();
}
}
}, SPLASH_DURATION); // time in milliseconds (1 second = 1000 milliseconds) until the run() method will be called
}
@Override
public void onBackPressed() {
// set the flag to true so the next activity won't start up
mIsBackButtonPressed = true;
super.onBackPressed();
}
}
这只是一个带有继续按钮的调试主菜单:
public class DebugMain extends Activity {
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.debugmenu);
addListenerOnButton();
}
public void addListenerOnButton() {
//Select a specific button to bundle it with the action you want
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
}
答案 0 :(得分:0)
“但是我无法确定如何调用这些值,以便”继续“按钮知道在哪个活动加载时会加载。”
在加载主菜单时启动时,应打开共享首选项文件并读取int值。如果您的游戏中有10个级别,则可以存储一个键/值对。 level:numOfLevel。
当按下继续按钮时,您可以编写一个开关(userLevel){案例1:...案例2:....其中每个案例将根据您在加载时读取的级别启动不同的活动。
真的不是很多:)如果它是一个简单的级别结构,就像你说的那样。