繁体   English   中英

进入新的android活动陷入黑屏

[英]Going to new android activity gets stuck on black screen

我知道这个问题在此之前已经被问过很多次了,但是我已经尝试了以前发布的所有解决方案,但是没有一个对我有用。 我有一个非常简单的启动页面,我希望onSplashPageClick转到新的活动。 在仿真器中,它进入黑屏并无限期卡住。 我检查了我是否要去android manifest文件中的(ColorMatch.class)活动,以及是否在onCreate下设置了setContentView。

我的Android清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ali.colormatch">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".ColorMatch"></activity>
</application>

</manifest>

我的MainActivity.java:

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash_page);
}

public void onSplashPageClick(View view){
    Intent intent = new Intent(this, ColorMatch.class);
    /* intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    overridePendingTransition(0, 0); */
    startActivity(intent);
}

public void onQuitClick(View view){
    finish();
}
}

我要在启动页面ColorMatch.java之后启动的活动:

package com.example.ali.colormatch;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.os.Bundle;
import android.app.Activity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.Random;

public class ColorMatch extends AppCompatActivity {

int answer; //1 = red, 2 = blue, 3 = green, 4 = yellow
TextView textView3, textView2;
int count = 0;
volatile boolean playing = true;
private long timeThisFrame;
private Button testButton;
long fps;
int score;
int correctAnswer;
boolean matchColor = true, matchText = false;
long startFrameTime;
boolean firstTime = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_color_match);
    textView3 = (TextView) findViewById(R.id.textView3);
    textView2 = (TextView) findViewById(R.id.textView2);
    /*testButton = (Button) findViewById(R.id.button);

    testButton.setOnClickListener(new View.OnTouchListener(){
        public void onClick(View v) {
           answer = 3;
        }

        });*/
    //run();
}

public void run() {
    while (playing) {

        startFrameTime = System.currentTimeMillis();

        if (firstTime){
            generateNewWord();
            firstTime = false;
        }

        if (answer == correctAnswer){
            score++;
            count++;
            generateNewWord();}
        else {
            quit();
        }


        if (count % 5 == 0){
                if (matchColor) {
                    textView3.setText(getString(R.string.gameSetting2)); // might need to add context with this - check    http://stackoverflow.com/questions/10698945/reference-string-resource-from-code
                    matchColor = true;
                    matchText = false;
                }
                else if (matchText){
                    textView3.setText(getString(R.string.gameSetting1));
                    matchText = true;
                    matchColor = false;
                }
            }
        }

        //draw();
        timeThisFrame = System.currentTimeMillis() - startFrameTime;
        if (timeThisFrame > 0) {
            fps = 1000 / timeThisFrame;
        }

    }

public void generateNewWord(){

    //randomly select between red, green, blue, yellow
    Random rand = new Random();
    int randomInt1 = rand.nextInt(4) + 1; // assigns randomInt a value between 1 - 4
    int randomInt2 = rand.nextInt(4) + 1;

    if (randomInt1 ==1){
        textView3.setText(R.string.Red);
    }
    else if (randomInt1 ==2){
        textView3.setText(R.string.Green);
    }
    else if (randomInt1 == 3){
        textView3.setText(R.string.Blue);
    }
    else if (randomInt1 == 4){
        textView3.setText(R.string.Yellow);
    }


    //randomly select hex codes between rgby
    if (randomInt2 ==1){
        textView3.setTextColor(0xffcc0000);
    }
    else if (randomInt2 ==2){
        textView3.setTextColor(0xff669900);
    }
    else if (randomInt2 == 3){
        textView3.setTextColor(0xff000080);
    }
    else if (randomInt2 == 4){
        textView3.setTextColor(0xffffff00);
    }


   if (matchColor) {
        correctAnswer = randomInt2;
    }
    else if(matchText){
        correctAnswer = randomInt1;
    }

}
public void quit(){

}


public void sendBlue(View view){
    answer = 2;
}
public void sendRed(View view){
    answer = 1;
}
public void sendYellow(View view){
    answer = 4;
}
public void sendGreen(View view){
    answer = 3;
}

}

我的初始页面xml文件,该文件以MainActivity打开:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:gravity="center"
android:background="#d0cbd1"
tools:context="com.example.ali.colormatch.MainActivity"
android:weightSum="1"
android:onClick="onSplashPageClick"

android:baselineAligned="false">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="sans-serif-thin"
    android:text="Color Match"
    android:gravity="center"
    android:textColor="#440027"
    android:textSize="75dp"
    android:id="@+id/textView" />


</LinearLayout>

ColorMatch.java的XML文件-activity_color_match.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_color_match"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.ali.colormatch.ColorMatch">

<TextView

    android:text="@string/matchText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView3"
    android:textAppearance="@style/TextAppearance.AppCompat.Body2"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

<TextView
    android:text="@string/mainColor"
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:textColor="@android:color/background_dark"
    android:textSize="100dp"
    android:layout_marginBottom="104dp"
    android:textAppearance="@style/TextAppearance.AppCompat.Display3"
    android:layout_above="@+id/button3"
    android:layout_centerHorizontal="true" />

<Button
    android:layout_width="150dp"
    android:layout_height="60dp"
    android:id="@+id/button"
    android:background="#000080"
    android:onClick="sendBlue"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:layout_height="60dp"
    android:id="@+id/button2"
    android:background="@color/yellow"
    android:elevation="0dp"
    android:layout_width="150dp"
    android:onClick="sendYellow"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<Button
    android:layout_width="150dp"
    android:layout_height="60dp"
    android:id="@+id/button3"
    android:background="@android:color/holo_red_dark"
    android:onClick="sendRed"
    android:layout_above="@+id/button"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="19dp" />

<Button
    android:layout_width="150dp"
    android:layout_height="60dp"
    android:id="@+id/button4"
    android:background="@android:color/holo_green_dark"
    android:onClick="sendGreen"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_alignBottom="@+id/button3" />


</RelativeLayout>

尝试这个:

public void onSplashPageClick(View view){
    Intent intent = new Intent(MainActivity.this, ColorMatch.class);
    startActivity(intent);
}

评论run(); 在ColorMatch类中

如果正在运行,则开始调试run()过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM