Ошибка черного экрана - PullRequest
       4

Ошибка черного экрана

1 голос
/ 16 августа 2011

Так что недавно я настроил намерение, когда при нажатии кнопки запускается новое действие.Работает нормально, но когда я иду на занятие, а затем пытаюсь вернуться на главный экран, я получаю черный экран.На черном экране, если я нанесу ответный удар еще раз, это приведет меня к главному меню, но это раздражает.Есть идеи?

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 вМанифест

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

        });
    }
}

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Ваше первое действие никогда не устанавливает макет.В показанном коде похоже, что вы переходите от playbutton к PlayActivity.Когда вы нажимаете обратно PlayActivity, он возвращается к playbutton.Поскольку вы никогда не вызывали setContentView() на любом макете в playbutton, это просто черный экран, который ничего не делает.Похоже, вам следует просто удалить действие playbutton.

0 голосов
/ 16 августа 2011

Если вы вызываете Playbutton Activity из основного потока, а затем просто вызываете PlayActivity в onCreate (), вы добавляете ненужный шаг.

Просто переместите

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

Изваша игровая кнопка Активность к вашей основной Активность

...