使用按钮调用新 activity 时应用程序崩溃

App crashes when a button is used to invoke a new activity

我在我的应用程序中使用按钮转到“关于”页面,但只要单击该按钮,应用程序就会崩溃。没有 gradle 构建错误。

在父class中,我使用了这段代码。这段代码过去对我有用,没有任何问题。每当我将鼠标悬停在按钮 2 上时,它都会指出从未使用过 'button2(android.view.View)',我已经在上面导入了 android view.View。

public void button2(View view){
    Intent intent = new Intent(this, prepo.class);
    startActivity(intent);
}

然后我在 Android 清单中使用了它。

       <activity
        android:name=".prepo"
        android:label="About"
        android:parentActivityName=".BitRates">
      </activity>

而我在父class中的xml如下

<Button
    android:text="About"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView6"
    android:layout_centerHorizontal="true"
    android:id="@+id/button2"
    style="@style/Widget.AppCompat.Button.Borderless"
    android:background="?android:attr/colorBackground"
    android:backgroundTint="?android:attr/colorBackground"
    android:onClick="button2 (BitRates)" />

我以前在开发应用程序时使用过它并且它有效,没有任何错误或崩溃。

编辑:

错误日志。

    E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.user.name, PID: 3101
                  java.lang.IllegalStateException: Could not find method button2 (BitRates)(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'button2'
                      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:307)
                      at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:266)
                      at android.view.View.performClick(View.java:5198)
                      at android.view.View$PerformClick.run(View.java:21147)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:148)
                      at android.app.ActivityThread.main(ActivityThread.java:5417)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Application terminated.

已解决,xml 中的更改来自

 android:onClick="button2 (BitRates)"

到这个

 android:onClick="button2" />

将您的按钮 xml 代码更新为:

<Button
    android:text="About"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView6"
    android:layout_centerHorizontal="true"
    android:id="@+id/button2"
    style="@style/Widget.AppCompat.Button.Borderless"
    android:background="?android:attr/colorBackground"
    android:backgroundTint="?android:attr/colorBackground"
    android:onClick="button2" />

以上代码的作用是触发您的 activity 的方法 button2。早些时候它正在搜索以下方法名称:button2 (BitRates) 在你的活动中