2

我仍然对我的朋友提供的静态类代码感到困惑,除了共享首选项之外,我已经尝试了 3 天来学习代码并询问,但代码仍然存在一些问题

这是我selectlevel.class完善 的最新以下代码

public class selectlevel extends Activity {

    Button f1, f2, f3;
    ImageView f2lock, f3lock;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.selectlevel);


       f1=(Button)findViewById(R.id.f1);
       f1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v){
                    // TODO Auto-generated method stub
                    Intent level1 = new Intent ();
                    level1.setClassName ("com.example.game", "com.example.game.levelone");
                    startActivity (level1);              
                }             
            }); 

        f2=(Button)findViewById(R.id.f2);
        f2lock=(ImageView)findViewById(R.id.f2lock);
        f2.setOnClickListener(new View.OnClickListener() {

             @Override
             public void onClick(View v){
               // TODO Auto-generated method stub
                Intent level2 = new Intent ();
                level2.setClassName ("com.example.game", "com.example.game.leveltwo");
                startActivity (level2);              
                }                       
          });
            updateLevels();
    }

    static class PlayerProgress {

        private static int progress = 0;

        public static void updateProgress(int levelNumber) {
            progress = levelNumber;
        }  

        public static int getPlayerProgress() {
            return progress;
        }
    }

    public void updateLevels() {
        int progress = PlayerProgress.getPlayerProgress();


    switch(progress) {
        case 1:
            f2.setVisibility(View.VISIBLE);
            f2lock.setVisibility(View.GONE);
            break;
        case 2:

            break;

        // You can expand this to as many levels you'd like.
    }
  }

我曾在我的中使用它levelone.class来将更新进度发送到 1

button1.setOnClickListener(new View.OnClickListener() {

          public void onClick(View v){
              selectlevel.PlayerProgress.updateProgress(1);
              finish(); 

levelone.class 完成后,f2 按钮仍然消失,f2lock 仍然可见

在此处输入图像描述

什么都没有改变selectlevel.class

我想知道它是否可以像这样可见并且如果游戏重新打开仍然可见,因为按钮可见性已保存

在此处输入图像描述

谁能帮我解决我的代码中的问题?或者用另一个代码作为解决方案进行解释?

4

1 回答 1

3

尝试updateLevels()在您的 onClick 函数中调用该函数,如下所示:

button1.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v){
          selectlevel.PlayerProgress.updateProgress(1);
          selectlevel.PlayerProgress.updateLevels();
          finish(); 
}
于 2015-08-15T13:45:13.597 回答