【问题标题】:New activity not opening using StartActivity Android studio新活动未使用 StartActivity Android Studio 打开
【发布时间】: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


【解决方案1】:

您是否在清单中添加了您调用的活动?

【讨论】:

  • 那行得通。愚蠢的错误。需要等待 9 分钟才能接受答案!
  • 发生在我们所有人身上;)
【解决方案2】:

使用

Intent myIntent = new Intent(MainActivity.this, newActivity.class);
startActivity(myIntent);
finish();

【讨论】:

  • 投票了 :) 恭喜获得 1000 多位代表
  • 删除android:onClick="newactivity"后点击监听器将不起作用
【解决方案3】:

在您的启动器活动声明之后,像这样在 AndroidManifest.xml 中声明您的活动。

    <activity android:name=".NewActivity" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 2015-05-17
    • 2017-07-25
    相关资源
    最近更新 更多