gpt4 book ai didi

java - 单击按钮时,应用程序被强制关闭

转载 作者:行者123 更新时间:2023-12-01 11:11:43 26 4
gpt4 key购买 nike

如果单击按钮,我会将每个 Activity 设为随机,但似乎效果不佳,游戏被强制关闭。 “我使用 Bluestack 作为模拟器”

这是下面的代码

public class menu extends Activity {


int time = 5, one, two, three, four, five, number;
RelativeLayout layout1, layout2;
Button button1;

@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.menu);

SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("Lifes", 6);
editor.putInt("Level", 0);
editor.putInt("One", 1);
editor.putInt("Two", 1);
editor.putInt("Three", 1);
editor.putInt("Four", 1);
editor.putInt("Five", 1);


editor.commit();


layout1 =(RelativeLayout)findViewById(R.id.layout1);
layout2 =(RelativeLayout)findViewById(R.id.layout2);


new CountDownTimer(5000, 1000) {

@Override
public void onFinish() {
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.VISIBLE);
}

@Override
public void onTick(long millisUntilFinished) {
}
}.start();


button1 = (Button)findViewById(R.id.introbutton1);
button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View v){
SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("Level", 1);
editor.commit();


// Here, we are generating a random number
Random generator = new Random();
number = generator.nextInt(5) + 1;
// The '5' is the number of activities

Class activity = null;

// Here, we are checking to see what the output of the random was
switch(number) {
// E.g., if the output is 1, the activity we will open is ActivityOne.class


case 1: if(one == 1){
activity = activityone.class;
}

// if the activity was aready opened he will put value == 2, so the code will random again find activity with value == 1
else if(one == 2){
Random generatorone = new Random();
number = generatorone.nextInt(5) + 1;
}

break;
case 2: if(two== 1){
activity = activitytwo.class;
}
else if(two== 2){
Random generatortwo = new Random();
number = generatortwo.nextInt(5) + 1;
}
break;
case 3:if(three== 1){
activity = activitythree.class;
}
else if(three== 2){
Random generatorthree = new Random();
number = generatorthree.nextInt(5) + 1;
}
break;
case 4:if(four == 1){
activity = activityfour.class;
}
else if(four == 2){
Random generatorFour = new Random();
number = generatorFour.nextInt(5) + 1;
}

editor = pref.edit();
// Key,Value
editor.putInt("Activity", number);

editor.commit();
}
// We use intents to start activities
Intent intent = new Intent(getBaseContext(), activity);
startActivity(intent);
}
});
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

但是当我单击按钮时,应用程序被强制关闭。我错过了什么吗?有人可以帮忙吗?

在每个 Activity 中都有一个代码来更新值==2

          public void onClick(View v){
level++;
SharedPreferences pref = getSharedPreferences("SavedGame", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putInt("Lifes", gamelifes);
editor.putInt("Level", level);
editor.putInt("One", 2);
editor.commit();
// Here, we are generating a random number
Random generator = new Random();
number = generator.nextInt(5) + 1;
// The '5' is the number of activities

Class activity = null;

// Here, we are checking to see what the output of the random was
switch(number) {
// E.g., if the output is 1, the activity we will open is ActivityOne.class


case 1: if(one == 1){
activity = activityone.class;
}
else if(one == 2){
Random generatorone = new Random();
number = generatorone.nextInt(5) + 1;
}
break;
case 2: if(two== 1){
activity = activitytwo.class;
}
else if(two== 2){
Random generatortwo = new Random();
number = generatortwo.nextInt(5) + 1;
}
break;
case 3:if(three== 1){
activity = activitythree.class;
}
else if(three== 2){
Random generatorthree = new Random();
number = generatorthree.nextInt(5) + 1;
}
break;
case 4:if(four == 1){
activity = activityfour.class;
}
else if(four == 2){
Random generatorFour = new Random();
number = generatorFour.nextInt(5) + 1;
}
default:if(level == 5){
activity = activityfive.class;
}

editor = pref.edit();
// Key,Value
editor.putInt("Activity", number);

editor.commit();
}
// We use intents to start activities
Intent intent = new Intent(getBaseContext(), activity);
startActivity(intent);
}
});
}

最佳答案

您没有将值分配给一、二..并且每次这些值都为零。因此,如果总是将 Activity 设为空..那么您需要将值分配给变量一、二等.. ..

switch(number) { 
// E.g., if the output is 1, the activity we will open is ActivityOne.class


case 1: if(one == 1){
activity = activityone.class;
}

// if the activity was aready opened he will put value == 2, so the code will random again find activity with value == 1
else if(one == 2){
Random generatorone = new Random();
number = generatorone.nextInt(5) + 1;
}

在上面的代码中,您正在分配 Activity 对象。一查我就觉得是问题!

关于java - 单击按钮时,应用程序被强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32285979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com