Android: How do you go to another activity on click?

隐身守侯 提交于 2019-12-04 17:23:35

问题


I'm trying to move onto the third activity in a sequence. Going from the main activity to the second one works fine but when I try to go to the third activity from the second I the application crashes.

Here's my code for the second activity:

package com.example.helloandroid;

import android.app.Activity;
//other imports here

public class Game extends Activity implements OnClickListener {

    private static final String TAG = "Matrix";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.matrix);
        View doneButton = findViewById(R.id.done_button);
        doneButton.setOnClickListener(this);
    }

    public void onClick(View v) { 
        switch (v.getId()) { 
            case R.id.done_button:
                Intent k = new Intent(this, GameTwo.class);
                startActivity(k);
                //finish();
                break;
        }
    }
}

And the code for the third activity:

package com.example.helloandroid;

import android.app.Activity;
//other imports here

public class GameTwo extends Activity {

   private static final String TAG = "Matrix";

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       this.setContentView(R.layout.matrixtwo);
       View donetwoButton = findViewById(R.id.donetwo_button);
   }
}

回答1:


Try the following code in the switch:

try {
    Intent k = new Intent(Game.this, GameTwo.class);
    startActivity(k);
} catch(Exception e) {
    e.printStackTrace();
}

Tell me is this helpful.....




回答2:


Intent k = new Intent(Game.this, GameTwo.class);
startActivity(k);

This works, but you also want to make sure that you specify this in your manifest.




回答3:


Be sure to have the three Activities declared in the manifest. Is a common error to create the Activity and not declare it.

Call the new Activity using:

Intent k = new Intent(Game.this, GameTwo.class);
startActivity(k);



回答4:


Try this

Intent intent = new Intent(getApplicationContext(), GameTwo.class);
startActivity(intent);



回答5:


It's a long shot but...
Your problem could also be caused by a NullPointerException
which is thrown if donetwo_button isn't declared in matrixtwo.xml...
(Copy-paste errors are quite common)



来源:https://stackoverflow.com/questions/5163481/android-how-do-you-go-to-another-activity-on-click

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!