2011-08-16 4 views
0

Alors récemment, j'ai mis en place une intention où quand un bouton est cliqué, il ouvre une nouvelle activité. Cela fonctionne bien mais quand je vais à l'activité et que j'essaie de revenir à l'écran principal, je reçois un écran noir. À l'écran noir, si je riposte une fois de plus, cela me mène au menu principal, mais c'est ennuyeux. Des idées?Black Screen Error

playbutton.java

package com.Dragon_Fruit; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.WindowManager; 

public class playbutton extends Activity { 

    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     super.onCreate(savedInstanceState); 
     Intent myIntent = new Intent(playbutton.this, PlayActivity.class); 
     playbutton.this.startActivity(myIntent); 

    } 

} 

PlayActivity.java

package com.Dragon_Fruit; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 
import android.view.WindowManager; 

public class PlayActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.playscreen); 

} 
} 

PlayActivity dans le manifeste

<activity android:name=".PlayActivity" 
        android:label="@string/app_name" 
      android:screenOrientation="landscape" 
        android:configChanges="keyboard|keyboardHidden|orientation"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 

DragonFruitActivity.java

package com.Dragon_Fruit; 

import java.io.IOException; 

import android.app.Activity; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.ImageButton; 

public class DragonFruitActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     // ***BUTTON SOUND***// 
     final MediaPlayer buttonSound = MediaPlayer.create(
       DragonFruitActivity.this, R.raw.button_click); 

     ImageButton playbutton = (ImageButton) findViewById(R.id.playbutton); 
     playbutton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       arg0.setBackgroundResource(R.drawable.playbuttonselected); 
       // TODO Auto-generated method stub 
       if(buttonSound.isPlaying()) { 
        buttonSound.stop(); 
       } 

       try { 
        buttonSound.prepare(); 
       } catch (IllegalStateException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

       buttonSound.start(); 

       startActivity(new Intent(DragonFruitActivity.this, 
         playbutton.class)); 
      } 

     }); 
     ImageButton settingsbutton = (ImageButton) findViewById(R.id.settingsbutton); 
     settingsbutton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       if(buttonSound.isPlaying()) { 
        buttonSound.stop(); 
       } 

       try { 
        buttonSound.prepare(); 
       } catch (IllegalStateException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

       buttonSound.start(); 

       startActivity(new Intent(DragonFruitActivity.this, 
         settingsbutton.class)); 
      } 

     }); 
    } 
} 

Répondre

1

Votre première activité ne se couche jamais une mise en page. Dans le code indiqué, il semble que vous allez de playbutton à PlayActivity. Lorsque vous appuyez de nouveau sur PlayActivity, cela revient à playbutton. Comme vous n'avez jamais appelé setContentView() sur une mise en page playbutton, il s'agit simplement d'un écran noir qui ne fait rien. Il semble que vous devriez simplement supprimer l'activité playbutton.

+0

désolé, je pourrais avoir rédigé ce mal. Lorsque mon application démarre, elle lance DragonFruitActivity.java qui définit la mise en page sur un xml que j'ai créé. J'ai ensuite utilisé deux boutons d'image pour être les principaux boutons sur l'écran. Lorsque le bouton de lecture (activité du bouton de lecture) a été poussé, je voulais qu'il commence une nouvelle activité. Est-ce la bonne façon de faire les choses? Je vais mettre le DragonFruitActivity.java dans ma question. – Zach

+0

Hé, je l'ai compris merci pour votre aide, vous aviez raison l'activité playbutton prenait de nombreuses étapes. – Zach

+0

Remplacer 'startActivity (new Intent (DragonFruitActivity.this, playbutton.class));' avec startActivity (nouvel Intent (DragonFruitActivity.this, PlayActivity.class)): 'Il n'y a aucune raison de démarrer une nouvelle activité pour démarrer une nouvelle activité . – DeeV

0

Si vous appelez l'activité playbutton à partir de votre thread principal et appelez ensuite PlayActivity dans onCreate(), vous ajoutez une étape inutile.

Il suffit de déplacer

Intent myIntent = new Intent(playbutton.this, PlayActivity.class); 
    playbutton.this.startActivity(myIntent); 

De l'activité de votre playbutton à votre principale activité

+0

Ohhh qui a du sens, ça fonctionne, ça marche bien maintenant. – Zach