使用按钮调用新 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)
在你的活动中
我在我的应用程序中使用按钮转到“关于”页面,但只要单击该按钮,应用程序就会崩溃。没有 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)
在你的活动中