samedi 29 août 2015

Force Close when button Clicked

In my previous question it is because the value make the activity not opened so i changed to new code but it still force close

this is my code to make random activity

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);

        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", 0);  
            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: 
             activity = activityone.class;

             //to check the activity already opened or not, so he will do this logic

             if(one == 1){
                Random generatorone = new Random();
                number = generatorone.nextInt(5) + 1; 
            }
             break;
         case 2: 
             activity = activitytwo.class;

             if(two== 1){
                Random generatortwo = new Random();
                number = generatortwo.nextInt(5) + 1; 
            }
             break;
         case 3:
             activity = activitythree.class;

            if(three== 1){
                Random generatorthree = new Random();
                number = generatorthree.nextInt(5) + 1; 
            }
             break;
         case 4:
             activity = activityfour.class;

             if(four == 1){
                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);
  }
}

and when each activity opened there is a code to make value of the activity == 1 (already opened)

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

 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); 
//sharedpreferences put int values to 1 (the activity already opened) 
 editor.putInt("One", 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: 
          activity = activityone.class;

          if(one == 1){
          Random generatorone = new Random();
          number = generatorone.nextInt(5) + 1; 
         }
          break;
 case 2: 
          activity = activitytwo.class;

          if(two== 1){
          Random generatortwo = new Random();
          number = generatortwo.nextInt(5) + 1; 
         }
          break;
 case 3:
          activity = activitythree.class;

          if(three== 1){
          Random generatorthree = new Random();
          number = generatorthree.nextInt(5) + 1; 
         }
          break;
 case 4:
          activity = activityfour.class;

       if(four == 1){
       Random generatorFour = new Random();
       number = generatorFour.nextInt(5) + 1; 
                                                }                                            
       break;
       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);
                     }                
             });
    } 

There is something missing or wrong with my code that can't make the activity random properly? or anyone can help me with another alternatif code?

can anyone help me to fix this?




Aucun commentaire:

Enregistrer un commentaire