使用按钮调用新活动时,应用程序崩溃

时间:2016-11-23 11:10:28

标签: android android-studio android-activity android-button

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

在父类中,我使用了这段代码。这条代码在过去对我有用而没有任何问题。每当我将鼠标悬停在按钮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>

我父类中的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" />

1 个答案:

答案 0 :(得分:1)

将按钮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" />

以上代码的作用是触发您活动的方法button2。之前它正在搜索以下方法名称:您的活动中的button2 (BitRates)