Android 重定向到其他活动

Android 重定向到其他活动,android,redirect,android-activity,menu,options,Android,Redirect,Android Activity,Menu,Options,我试图通过我的选项菜单重定向到另一个活动,但是,当选中该项目时,它会崩溃。有人能看到错误吗 这里是GameCentral.java public class GameCentral extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gamecentr

我试图通过我的选项菜单重定向到另一个活动,但是,当选中该项目时,它会崩溃。有人能看到错误吗

这里是GameCentral.java

public class GameCentral extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gamecentral);
    }

    public boolean onCreateOptionsMenu(Menu menu)
    {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.gamecentralmenu, menu);
        return true;

    }

    public boolean onOptionsItemSelected (MenuItem item)
    {
        switch(item.getItemId()){
        case R.id.GuessingGame:
            Intent intent = new Intent(GameCentral.this, MainActivity.class);
            startActivity(intent);


        case R.id.Example1:
            Toast.makeText(this, "Example 1", Toast.LENGTH_SHORT);
        case R.id.Example2:
            Toast.makeText(this, "Example 2", Toast.LENGTH_SHORT);
        case R.id.Example3:
            Toast.makeText(this, "Example 3", Toast.LENGTH_SHORT);
        }

        return true;
    }



}
下面是日志:

03-11 17:46:50.353: E/AndroidRuntime(1522): FATAL EXCEPTION: main
03-11 17:46:50.353: E/AndroidRuntime(1522): Process: com.example.c3438525Task3, PID: 1522
03-11 17:46:50.353: E/AndroidRuntime(1522): android.util.SuperNotCalledException: Activity {com.example.c3438525Task3/com.example.c3438525Task3.GameCentral} did not call through to super.onCreate()
下面是MainActivity.java

public class MainActivity extends Activity {
    int i;
    int min;
    int max;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        min = 1;
        max = 20;
        Random r = new Random();
        i = r.nextInt(max - min + 1) + min;


    }
    public void guessingGame (View v)
    {


        EditText guess = (EditText) findViewById(R.id.guess);
        TextView finalMessage = (TextView) findViewById(R.id.finalMessage);
        TextView numGuessesLeft = (TextView) findViewById(R.id.guessesLeft);
        TextView compGuess = (TextView) findViewById(R.id.tvCompGuess);
        TextView restartCounter = (TextView) findViewById(R.id.restartCount);
        TextView guessCorrect = (TextView) findViewById(R.id.guessesCorrect);
        TextView yourGuess = (TextView) findViewById(R.id.userGuess);
        Button start = (Button) findViewById(R.id.start);
        compGuess.setVisibility(View.INVISIBLE);
        int guessesCorrect = Integer.parseInt(guessCorrect.getText().toString());
        int guessValue = Integer.parseInt(guess.getText().toString());
        start.setText("Start");
        int numGuessesValue = Integer.parseInt(numGuessesLeft.getText().toString());
        int restartCount = Integer.parseInt(restartCounter.getText().toString());

        if (guessValue > 20)
        {
            finalMessage.setText("Error");
            guess.getText().clear();
        }
        else if (guessValue < 1)
        {
            finalMessage.setText("Error");
            guess.getText().clear();
        }
        else 
        {

            numGuessesValue -= 1;
            numGuessesLeft.setText(Integer.toString(numGuessesValue));

                if (numGuessesValue > 0)
                    {
                    int computerNumber = i;
                    compGuess.setText(Integer.toString(i));
                    yourGuess.setText(Integer.toString(guessValue));

                        if (computerNumber > guessValue)
                        {
                            finalMessage.setText("Too low!");

                            finalMessage.setTextColor(Color.BLUE);
                        }
                        else if (computerNumber < guessValue)
                        {
                        finalMessage.setText("Too high!");


                        finalMessage.setTextColor(Color.RED);
                        }
                        else if (computerNumber == guessValue)
                            {
                            compGuess.setVisibility(View.VISIBLE);
                            finalMessage.setText("Good Guess!");
                            numGuessesValue += 5;
                            numGuessesLeft.setText("5");
                            finalMessage.setTextColor(Color.GREEN);
                            guessesCorrect += 1;
                            guessCorrect.setText(Integer.toString(guessesCorrect));
                            Random r = new Random();
                            i = r.nextInt(max - min + 1) + min;
                            }

            }

            else if (numGuessesValue == 0)
            {

                guess.setText("10");    
                start.setText("Restart");
                finalMessage.setText("You are out of guesses! - Enter a new number to start again");
                compGuess.setVisibility(View.VISIBLE);
                numGuessesValue += 5;
                numGuessesLeft.setText("5");
                restartCount += 1;
                restartCounter.setText(Integer.toString(restartCount));
                guess.getText().clear();                
                Random r = new Random();
                i = r.nextInt(max - min + 1) + min;


            }



        }

    }

}
公共类MainActivity扩展活动{
int i;
int-min;
int max;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
最小值=1;
最大值=20;
随机r=新随机();
i=r.nextInt(最大-最小+1)+min;
}
公众猜空游戏(视图五)
{
EditText guess=(EditText)findViewById(R.id.guess);
TextView finalMessage=(TextView)findViewById(R.id.finalMessage);
TextView numguessleft=(TextView)findViewById(R.id.guessleft);
TextView compGuess=(TextView)findViewById(R.id.tvCompGuess);
TextView restartCounter=(TextView)findViewById(R.id.restartCount);
TextView guessCorrect=(TextView)findViewById(R.id.guessCorrect);
TextView yourGuess=(TextView)findViewById(R.id.userGuess);
按钮开始=(按钮)findViewById(R.id.start);
compGuess.setVisibility(视图不可见);
int guessCorrect=Integer.parseInt(guessCorrect.getText().toString());
int guessValue=Integer.parseInt(guess.getText().toString());
start.setText(“开始”);
int numguesesvalue=Integer.parseInt(numguesesleft.getText().toString());
int restarcount=Integer.parseInt(restarcounter.getText().toString());
如果(猜测值>20)
{
finalMessage.setText(“错误”);
guess.getText().clear();
}
else if(猜测值<1)
{
finalMessage.setText(“错误”);
guess.getText().clear();
}
其他的
{
numguesesvalue-=1;
numguesesleft.setText(Integer.toString(numguesesvalue));
如果(numguesesvalue>0)
{
int computerNumber=i;
compGuess.setText(Integer.toString(i));
yourgess.setText(Integer.toString(guessValue));
如果(计算机编号>猜测值)
{
setText(“太低了!”);
最终消息。setTextColor(Color.BLUE);
}
else if(计算机编号<猜测值)
{
setText(“太高了!”);
最终消息。setTextColor(Color.RED);
}
else if(computerNumber==猜测值)
{
compGuess.setVisibility(View.VISIBLE);
setText(“猜对了!”);
数值+=5;
Numguesselft.setText(“5”);
最终消息。setTextColor(Color.GREEN);
猜测正确率+=1;
guessCorrect.setText(Integer.toString(guessCorrect));
随机r=新随机();
i=r.nextInt(最大-最小+1)+min;
}
}
else if(numguesesvalue==0)
{
猜一猜。setText(“10”);
start.setText(“重启”);
setText(“你猜不到了!-输入一个新数字重新开始”);
compGuess.setVisibility(View.VISIBLE);
数值+=5;
Numguesselft.setText(“5”);
restarcount+=1;
restarcounter.setText(Integer.toString(restarcount));
guess.getText().clear();
随机r=新随机();
i=r.nextInt(最大-最小+1)+min;
}
}
}
}

检查Logcat的最后一行,似乎您没有在
MainActivity.java
onCreate()
方法中调用
super.onCreate()。
并确保将MainActivity添加到清单中,如下所示:

<application . . .>
        <activity android:name="com.example.c3438525Task3.MainActivity" />
</application>

要重定向另一个活动只需将一个类名创建为(常规类),然后将下面的代码粘贴到活动中 不仅仅是写

->类名(常规).重定向活动(活动名称)


您好,谢谢您的快速回复,但我有super.onCreate(savedInstanceState);在onCreate方法的两个类上!你能发布MainActivity.java的代码吗?添加到上面,谢谢你显示你的MainActivity代码。我编辑了代码,我得到一个错误声明:03-11 18:10:28.803:E/AndroidRuntime(1915):android.content.ActivityNotFoundException:找不到显式活动类{com.example.c3438555task3/com.example.c343855task3.MainActivity};您是否在AndroidManifest.xml中声明了此活动?您需要在清单中的应用程序标记下添加此活动
private fun redirectActivity(activity: Activity) {
        Handler().postDelayed({
            startActivity(Intent(this, activity::class.java))
        }, 500)
    }