当我使用活动后退按钮后,我在我的应用程序崩溃点击应用按钮 [英] When i use the back button in activity my app crashes after i click a button in the app

查看:145
本文介绍了当我使用活动后退按钮后,我在我的应用程序崩溃点击应用按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 包com.example.submenus;进口android.os.Bundle;
进口android.app.Activity;
进口android.view.View;
进口android.widget.Button;公共类MainActivity延伸活动{    @覆盖
    公共无效onBack pressed(){
        的setContentView(R.layout.activity_main);
    }
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        最后Button按钮=(按钮)findViewById(R.id.a4button);
    button.setOnClickListener(新View.OnClickListener(){
        公共无效的onClick(视图v){
            的setContentView(R.layout.audi);
            }        });    最终按钮按钮1 =(按钮)findViewById(R.id.a6button);
    button1.setOnClickListener(新View.OnClickListener(){
        公共无效的onClick(视图v){
            的setContentView(R.layout.audia6);
            }
        });        }
    }

这是code为我的主要活动。在我的XML文件,我有2个功能的按钮,从主菜单中有不同的看法。当我preSS后退按钮,就又回到了我的应用程序的主菜单,就像它应该。然后,如果我点击另一个按钮的应用程序冻结,然后崩溃。我只有在java中的背景。有谁知道如何解决这一问题?

另外,这里是我的错误日志从我的logcat

  11-18 21:16:14.674:E / AndroidRuntime(30176):致命异常:主要
11-18 21:16:14.674:E / AndroidRuntime(30176):java.lang.IllegalStateException:找不到在活动课com.example.submenus.MainActivity对视图类的Andr​​oid的onClick处理程序的方法ButtonOnClick(查看)。 widget.Button ID为a4button
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.view.View $ 1.onClick(View.java:3666)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.view.View.performClick(View.java:4203)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.view.View $ PerformClick.run(View.java:17189)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.os.Handler.handleCallback(Handler.java:615)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.os.Handler.dispatchMessage(Handler.java:92)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.os.Looper.loop(Looper.java:137)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.app.ActivityThread.main(ActivityThread.java:4950)
11-18 21:16:14.674:E / AndroidRuntime(30176):在java.lang.reflect.Method.invokeNative(本机方法)
11-18 21:16:14.674:E / AndroidRuntime(30176):在java.lang.reflect.Method.invoke(Method.java:511)
11-18 21:16:14.674:E / AndroidRuntime(30176):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1004)
11-18 21:16:14.674:E / AndroidRuntime(30176):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
11-18 21:16:14.674:E / AndroidRuntime(30176):在dalvik.system.NativeStart.main(本机方法)
11-18 21:16:14.674:E / AndroidRuntime(30176):java.lang.NoSuchMethodException:致ButtonOnClick [类android.view.View]
11-18 21:16:14.674:E / AndroidRuntime(30176):在java.lang.Class.getConstructorOrMethod(Class.java:460)
11-18 21:16:14.674:E / AndroidRuntime(30176):在java.lang.Class.getMethod(Class.java:915)
11-18 21:16:14.674:E / AndroidRuntime(30176):在android.view.View $ 1.onClick(View.java:3659)
11-18 21:16:14.674:E / AndroidRuntime(30176):... 11个


解决方案

如果您在设置你为什么不创建两个不同的活动和内容设置在这些活动中这些观点上的按钮,点击两种不同的意见。

然后就可以调用那些按钮点击听众的活动。它是快速高效,您的应用程序不会崩溃。

  java.lang.IllegalStateException:找不到在活动课com.example.submenus.MainActivity为的onClick处理程序上的视图类android.widget.Button与方法ButtonOnClick(视图) ID'a4button

这个错误意味着你没有名为 ButtonOnClick(视图)的方法与ID按钮 a4button

删除那些最终修饰也

package com.example.submenus;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    @Override
    public void onBackPressed() {
        setContentView(R.layout.activity_main);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        final Button button = (Button) findViewById(R.id.a4button);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.audi);
            }

        }   );

    final Button button1 = (Button) findViewById(R.id.a6button);
    button1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            setContentView(R.layout.audia6);
            }
        } );

        }
    }

This is the code for my main activity. In my xml files, i have 2 buttons which lead to a different view from the main menu. And when i press the back button, it comes back to the main menu of my app just as it should. Then, if i click on another button the app freezes and then crashes. I only have background in java. Does anyone know how to fix this?

Plus, here are the logs for my error from my logcat

11-18 21:16:14.674: E/AndroidRuntime(30176): FATAL EXCEPTION: main
11-18 21:16:14.674: E/AndroidRuntime(30176): java.lang.IllegalStateException: Could not find a method ButtonOnClick(View) in the activity class com.example.submenus.MainActivity for onClick handler on view class android.widget.Button with id 'a4button'
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.view.View$1.onClick(View.java:3666)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.view.View.performClick(View.java:4203)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.view.View$PerformClick.run(View.java:17189)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.os.Handler.handleCallback(Handler.java:615)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.os.Looper.loop(Looper.java:137)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.app.ActivityThread.main(ActivityThread.java:4950)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at java.lang.reflect.Method.invokeNative(Native Method)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at java.lang.reflect.Method.invoke(Method.java:511)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at dalvik.system.NativeStart.main(Native Method)
11-18 21:16:14.674: E/AndroidRuntime(30176): Caused by: java.lang.NoSuchMethodException: ButtonOnClick [class android.view.View]
11-18 21:16:14.674: E/AndroidRuntime(30176):    at java.lang.Class.getConstructorOrMethod(Class.java:460)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at java.lang.Class.getMethod(Class.java:915)
11-18 21:16:14.674: E/AndroidRuntime(30176):    at android.view.View$1.onClick(View.java:3659)
11-18 21:16:14.674: E/AndroidRuntime(30176):    ... 11 more

解决方案

If you are setting two different views on a button click, why don't you create two different activities and set content those views in those activities.

Then you can call those activities from those button click listeners. It is fast efficient and your app will not crash.

java.lang.IllegalStateException: Could not find a method ButtonOnClick(View) in the activity class com.example.submenus.MainActivity for onClick handler on view class android.widget.Button with id 'a4button'

This errors means that you do not have a method named ButtonOnClick(View) for button with id a4button.

Remove those final modifiers also

这篇关于当我使用活动后退按钮后,我在我的应用程序崩溃点击应用按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆