我在 3 activity 中遇到一些问题,无法将 int 传递给另一个 class 并解锁关卡
I have some problems in 3 activity for pass int to another class and unlocked level
我有 main.xml 和 main.class两个按钮命名为:级别 1 和 级别 2
每个按钮都有打开另一个按钮的功能class
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--;
如果答案错误。
我的下一个问题是如何将 score
和 gamelifes
值发送到 level2.class 而当 buttonfinish
单击时的条件将 finish();
和 return 到 Main.class 和在main.class
中解锁2级按钮
那如何做一个sharedpreference设置来保存解锁按钮?
首先,要使按钮不可点击,您可以使用:
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);
}
我有 main.xml 和 main.class两个按钮命名为:级别 1 和 级别 2
每个按钮都有打开另一个按钮的功能class
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--;
如果答案错误。
我的下一个问题是如何将 score
和 gamelifes
值发送到 level2.class 而当 buttonfinish
单击时的条件将 finish();
和 return 到 Main.class 和在main.class
那如何做一个sharedpreference设置来保存解锁按钮?
首先,要使按钮不可点击,您可以使用:
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);
}