我在3个活动中遇到一些问题,将int传递给另一个类并解锁级别

时间:2015-08-09 19:12:02

标签: java android int sharedpreferences locked

我有 main.xml main.class ,它有两个名为的按钮:等级1 和< strong> 2级

每个按钮都有一个打开另一个类的功能

level1.setOnClickListener(new View.OnClickListener() {

                   @Override
                  public void onClick(View v){
                       // TODO Auto-generated method stub
                       Intent i =new Intent(getApplicationContext(),level1.class);
                       startActivity(i);              

    level2.setOnClickListener(new View.OnClickListener() {

               @Override
              public void onClick(View v){
                   // TODO Auto-generated method stub
                   Intent i =new Intent(getApplicationContext(),level2.class);
                   startActivity(i);             
                    }             
              });   

但条件是 2级按钮被锁定,但我不知道如何制作锁定按钮,我想问的第一件事是如何制作锁定按钮

要解锁级别2按钮,必须完成 level1.class 事件。 在 level1.class 中有类似这样的代码

public class level1 extends Activity implements OnClickListener {

    int gamelifes=6, index=0, score=0;
    String [] answer ={"the answer"};

    lifes =(TextView)findViewById(R.id.lifestext);
    lifes.setTextColor(Color.RED);
    lifes.setText(String.valueOf(gamelifes));

    buttonanswer = (Button)findViewById(R.id.buttonanswer);
    buttonanswer.setOnClickListener(this);

    good =(ImageView)findViewById(R.id.youwin);
    good.setOnClickListener(this);

    buttonfinish = (Button)findViewById(R.id.finish);
    buttonfinish.setOnClickListener(this);

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub            

    edittext=(EditText)findViewById(R.id.editText); 
    if(v==buttonanswer) {

        String abc =edittext.getText().toString();              
        if(abc.equalsIgnoreCase(answer[index]))
        {
           good.setVisibility(View.VISIBLE);
           buttonfinish.setVisibility(View.VISIBLE);
           score++;
        }
        else
        {
           gamelifes--;                     
        }

       buttonfinish.setOnClickListener(new View.OnClickListener() {

          public void onClick(View v){
             finish();          
          }
       });  
}

当答案正确时,会出现一些图像和一个按钮。 如果答案正确,则score++;;如果错误,则gamelifes--;

我的下一个问题是如何将scoregamelifes值发送到 level2.class ,而buttonfinish时的条件点击finish();并返回 Main.class ,然后解锁 main.class中的级别2按钮

然后如何制作 sharedpreference 设置以保存解锁按钮?

1 个答案:

答案 0 :(得分:2)

首先,要使按钮不可点击,您可以使用:

level2.setEnabled(false);

然后,当它可以被点击时,你只需将其设置为true。

其次,SharedPreferences可用于存储您的值,例如得分,然后可以在应用程序的任何位置访问它。

设置SharedPreferences

SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE);
preferences.edit().putInt("score", 100).apply();

然后获得分数:

preferences.getInt("score");

因此,如果您想使用保存的布尔值来了解第二级是否已解锁,您可以执行以下操作:

SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE);
boolean levelTwoUnlocked = preferences.getBoolean("level2", false);

level2.setEnabled(levelTwoUnlocked);

或者,如果您想设置按钮可见性:

if (levelTwoUnlocked) {
    level2.setVisibility(View.VISIBLE);
} else {
    level2.setVisibility(View.INVISIBLE);
}