【问题标题】:Using Boolean Android使用布尔值 Android
【发布时间】:2013-09-12 18:47:14
【问题描述】:

我试图通过调用布尔值来检查我的游戏中的关卡是否完整。我想在我的活动中按下一个按钮,然后检查关卡是否完成,如果“真”,关卡将加载,如果“假”,它将显示一个吐司说关卡已锁定。我可以将布尔值正确地保存在我的首选项中,但将其回调正变得非常痛苦。下面是我的代码。

我的保存方法:

SharedPreferences gamesettings =
                this.getSharedPreferences("GameProgress",0);

            SharedPreferences.Editor Edit = gamesettings.edit();
            Edit.putBoolean("level1",true);
            Edit.commit();


My menu where i want to call the boolean and start the levels activity:

public class DebugMain extends Activity {

    private Button button;
    private Button button1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.debugmenu);

        addListenerOnButton();

    }

    public void addListenerOnButton() {


        button = (Button) findViewById(R.id.button1);
        button1 = (Button) findViewById (R.id.button2);

        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {

                 loadSavedPreferences(); {
                SharedPreferences sharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(this);
                boolean gamesettings = sharedPreferences.getBoolean("level1", true);

                if (gamesettings) {

                    levelcomplete.setChecked(true);
                    Intent intent = new Intent(DebugMain.this, scene1.class);
                    DebugMain.this.startActivity(intent);
                    finish();

                } else {

                    levelcomplete.setChecked(false);
                    Toast.makeText (getApplicationContext(), "Level Locked", Toast.LENGTH_LONG).show ();

                    }

            }

        });

        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View view) {

                 //is level 2 unlocked going here

            }

        });



    }

}

【问题讨论】:

  • 你说calling it back is becoming a real pain。您面临的问题是什么?你正在经历什么痛苦?
  • 没有你在哪里显示你是如何获得共享偏好的
  • 我已经更新了我的帖子,向您展示我是如何尝试调用我的布尔值的。 Shobhit Puri - 问题是我只是不确定正确的方法:(
  • 甚至无法编译,因为当 this 实际上是您的 onClickListener 而不是上下文时,您在 onClick 中使用 this 作为 SharedPreferences 的上下文
  • 我知道它不能编译我一直在尝试的东西,但它显然不起作用

标签: android onclick boolean sharedpreferences


【解决方案1】:

您保存到这些首选项:

this.getSharedPreferences("GameProgress",0)

但你尝试从那些中读取

PreferenceManager.getDefaultSharedPreferences(this)

这些是不同的偏好。您必须对这两个操作使用相同的操作。

【讨论】:

  • 您能给我举个例子,说明如何以与我保存时相同的偏好阅读吗?
  • 是的,只需使用这个:SharedPreferences gamesettings = PreferenceManager.getDefaultSharedPreferences(this);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 2013-07-03
  • 1970-01-01
  • 2017-04-08
  • 2014-07-18
  • 2020-06-22
  • 1970-01-01
相关资源
最近更新 更多