【发布时间】:2017-01-19 16:10:01
【问题描述】:
我有一个相对布局,我已为其分配了一个 onClick 函数,单击该函数应打开一个新活动。但是,当我尝试以下代码时,应用程序崩溃了:
startActivity(new Intent(MainActivity.this, newActivity.class));
但是,当我打印吐司时它工作正常:
Toast.makeText(this, "Worked", Toast.LENGTH_LONG).show();
我的 xml 布局是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout"
android:onClick="newactivity"
android:orientation="vertical">
我调用的方法是:
public void newactivity (View v) {
//Toast.makeText(this, "Worked", Toast.LENGTH_LONG).show();
startActivity(new Intent(MainActivity.this, newActivity.class));
}
如果我注释 startActivity 并取消注释 Toast(单击布局时它会打印 Worked),该方法运行良好。
我不确定自己做错了什么。
我也尝试过其他开启活动的方式,但还是没有成功:
Intent myIntent = new Intent(MainActivity.this, newActivity.class);
MainActivity.this.startActivity(myIntent);
我收到以下错误:
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.view.View$DeclaredOnClickListener.onClick(View.java:4725)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
【问题讨论】:
-
newActivity是否已在清单中注册?加上发布完整的错误详细信息 -
新活动没有注册,所以我不得不手动输入。谢谢指出
标签: android xml android-intent android-activity onclick