java - "New Game"安卓游戏进度删除按钮

标签 java android android-studio button sharedpreferences

我开始学习 Java/Android Studio 已经一个月了,所以对于任何愚蠢的问题,我预先表示歉意。

我目前正在使用 Android Studio 制作一个简单的谜语游戏 - 提出一个问题,正确的答案会让你进入下一个 Activity/问题。因此,我的主菜单包含一个 Start Interrogation 按钮和一个 Continue 按钮。使用 SharedPreferences,我设法让游戏“保存进度”,这样它就可以让你找到你无法回答的最后一个问题;但我的问题来自“开始审讯”按钮。每当按下它并开始新游戏时,继续按钮仍会让您转到之前提出的最后一个问题。

所以简单来说,我想让“新游戏”按钮删除之前的进度。唯一想到的是每当按下按钮时尝试删除 SharedPreferences,但我没有写出这样的代码。

关于我应该做什么的任何提示?非常感谢帮助。这是我的 MainMenu 的 Java 代码。

MainMenuWithLogo.Java

    public class MainMenuWithLogo extends AppCompatActivity {

private Button mStartInterrogationButton;
private VideoView mLogoprwto;
private Button mContinueButton;
MediaPlayer song;


@Override
protected void onPause() {
super.onPause();
song.release();
}

@Override
public void onResume() {
super.onResume();
setContentView(R.layout.activity_main_menu_with_logo);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
song = MediaPlayer.create(this, R.raw.chopin);
song.start();
song.setLooping(true);




mLogoprwto = (VideoView) findViewById(R.id.logoprwto);
mLogoprwto.setVideoPath("android.resource://its_destination/"+R.raw.teloslogo);
mLogoprwto.start();

mLogoprwto.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {

        mLogoprwto.start();
    }
});

mStartInterrogationButton = (Button)findViewById(R.id.StartInterrogationButton);
mStartInterrogationButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        startGame();

    }
});

mContinueButton = (Button)findViewById(R.id.ContinueButton);

mContinueButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        SharedPreferences prefs = getSharedPreferences("Stage", MODE_PRIVATE);
        boolean question00Answered = prefs.getBoolean("QuestionZero", false);
        boolean question01Answered = prefs.getBoolean("QuestionOne", false);
        boolean question02Answered = prefs.getBoolean("QuestionTwo", false);




        if (!(question00Answered)) {


            Intent intent = new Intent(MainMenuWithLogo.this, QuestionZero.class);

            startActivity(intent);
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
            finish();
        } else if (!(question01Answered)) {



            Intent intent = new Intent(MainMenuWithLogo.this, QuestionOne.class);
            startActivity(intent);
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
            finish();
        } else if (!(question02Answered)) {


            Intent intent = new Intent(MainMenuWithLogo.this, QuestionTwo.class);
            startActivity(intent);
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
            finish();
        }else {


            Intent intent = new Intent(MainMenuWithLogo.this, End.class);
            startActivity(intent);
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
            finish();
        }

    }
});

}

private void startGame () {
Intent intent = new Intent(this, Intro.class);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
finish();
}
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}

最佳答案

您可以使用 SharedPreferences.Editor.remove()使用项目的键删除保存到 SharedPreferences 的项目。所以,当你开始一个新游戏时,调用它来删除用户的进度。或者,如果您想删除 SharedPreferences 中的ALL 内容,请调用 SharedPreferences.Editor.clear() .

关于java - "New Game"安卓游戏进度删除按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39236565/

相关文章:

java - Spring Hibernate 数据库连接

java - 将 favicon 设置为 maven-javadoc-plugin 生成的 javadoc 文件

java - Android (Java) 中的 ext4/fsync 情况不明

android - 如何在 Material Design 中展开/折叠 android 组件

android - onAttach(上下文上下文)未被调用

java - Twitter twitter4j 2.2.5 中的空指针异常

java - 节拍器android应用程序AudioTrack releaseBuffer()错误

android - keystore 被篡改或密码错误

android-studio - 使用android studio 3.1.2后显示error=2, No such file or directory

android-studio - Android 模拟器在 Android Studio 中启动,但未显示在设备选项卡中