首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java.lang.IllegalStateException:找不到方法

java.lang.IllegalStateException:找不到方法
EN

Stack Overflow用户
提问于 2013-12-09 13:59:34
回答 1查看 3.9K关注 0票数 2

我有件奇怪的事。我有两个手机4.1.2和2.3.6 android版本,4.1.2工作正常,但旧的一个抛出这个错误。

我的XML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ImageButton 

    android:id="@+id/IB_Nearest"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="IB_Nearest"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:src="@drawable/marker"
    android:background="@null"
    android:layout_margin="30dp"
    />     
    <ImageButton 
    android:id="@+id/IB_Category"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="IB_Category"
    android:src="@drawable/book"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:background="@null"
    android:layout_margin="30dp"
    />
<ImageButton 

    android:id="@+id/IB_Map"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="IB_Map"
    android:layout_below="@id/IB_Category"
    android:layout_alignParentRight="true"
    android:src="@drawable/mappp"
    android:background="@null"
    android:layout_margin="30dp"
    />




<ImageButton 
    android:id="@+id/IB_Search"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="IB_Search"
    android:src="@drawable/search"
    android:layout_below="@id/IB_Nearest"
    android:layout_alignParentLeft="true"
    android:background="@null"
    android:layout_margin="30dp"
    />
<ImageButton 

    android:id="@+id/IB_NewPlace"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="IB_NewPlace"
    android:layout_below="@id/IB_Search"
    android:layout_alignParentLeft="true"
    android:src="@drawable/info"
    android:background="@null"

    />

<ImageButton 
    android:id="@+id/IB_Statistics"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="IB_Statistics"
    android:src="@drawable/chart"
    android:layout_below="@id/IB_Map"
    android:layout_alignParentRight="true"
    android:background="@null"

    />
</RelativeLayout>
</ScrollView>

我的主语是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MainActivity extends FragmentActivity implements
LoaderManager.LoaderCallbacks<Cursor>{



    @Override
    protected void onCreate(Bundle savedInstanceState) {
         requestWindowFeature(Window.FEATURE_NO_TITLE); 
        super.onCreate(savedInstanceState);


    }




    public void IB_Map (View v){
        Intent intent = new Intent(MainActivity.this, Map.class);
        startActivity(intent);
    }
    public void IB_Category(View v){

        Intent intent = new Intent(MainActivity.this, TreeChoice.class);
        startActivity(intent);
    }
    public void IB_Nearest (View v){
        Intent intent = new Intent(MainActivity.this, NearPlaces.class);
        startActivity(intent);
    }
    public void IB_Search (View v){

        Intent intent = new Intent(MainActivity.this, Search.class);
        startActivity(intent);
    }
    public void IB_NewPlace (View v){
        Intent intent = new Intent(MainActivity.this, NewPlace.class);
        startActivity(intent);
    }
    public void IB_Statistics (View v){

        Intent intent = new Intent(MainActivity.this, Statistics.class);
        startActivity(intent);
    }














    /**
     * Background Async Task to Load all product by making HTTP Request
     * */
    public class LoadAllProducts extends AsyncTask<String, String, String> {



        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();

        }

        /**
         * getting All products from url
         * */
        protected String doInBackground(String... args) {

            return null;
        }

        /**
         * After completing background task Dismiss the progress dialog
         * **/
        protected void onPostExecute(String file_url) {

        }



    }













    @Override
    public android.support.v4.content.Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
        // TODO Auto-generated method stub
        return null;
    }


    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
        // TODO Auto-generated method stub

    }


    public void onLoaderReset(Loader<Cursor> arg0) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onLoadFinished(
            android.support.v4.content.Loader<Cursor> arg0, Cursor arg1) {
        // TODO Auto-generated method stub

    }


    @Override
    public void onLoaderReset(android.support.v4.content.Loader<Cursor> arg0) {
        // TODO Auto-generated method stub

    }

}

但是,如果我使用这个侦听器实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 final ImageButton rightButton = (ImageButton) findViewById(R.id.IB_Map);
                rightButton.setOnClickListener(new ImageButton.OnClickListener() {  
                    public void onClick(View v)
                        {
                        Intent intent = new Intent(MainActivity.this, Map.class);
                        startActivity(intent);
                        }
                     });

一切正常,有人能解释一下为什么会这样吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
12-10 00:05:21.875: E/AndroidRuntime(28537): FATAL EXCEPTION: main
12-10 00:05:21.875: E/AndroidRuntime(28537): java.lang.IllegalStateException: Could not find a method IB_Map(View) in the activity class lt.whitegroup.workplaces.ui.MainActivity for onClick handler on view class android.widget.ImageButton with id 'IB_Map'
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.view.View$1.onClick(View.java:2131)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.view.View.performClick(View.java:2485)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.view.View$PerformClick.run(View.java:9080)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.os.Handler.handleCallback(Handler.java:587)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.os.Handler.dispatchMessage(Handler.java:92)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.os.Looper.loop(Looper.java:130)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.app.ActivityThread.main(ActivityThread.java:3687)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.reflect.Method.invokeNative(Native Method)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.reflect.Method.invoke(Method.java:507)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at dalvik.system.NativeStart.main(Native Method)
12-10 00:05:21.875: E/AndroidRuntime(28537): Caused by: java.lang.NoSuchMethodException
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.Class.getDeclaredMethods(Native Method)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.ClassCache.getDeclaredPublicMethods(ClassCache.java:153)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.ClassCache.getMethodsRecursive(ClassCache.java:216)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.ClassCache.findMethods(ClassCache.java:175)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.ClassCache.getMethods(ClassCache.java:167)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at java.lang.Class.getMethod(Class.java:961)
12-10 00:05:21.875: E/AndroidRuntime(28537):    at android.view.View$1.onClick(View.java:2124)
12-10 00:05:21.875: E/AndroidRuntime(28537):    ... 11 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-09 14:01:10

How exactly does the android:onClick XML attribute differ from setOnClickListener?问题可能对你有帮助。请看投票最多的答案。它提到:

注意,Android只在当前活动中查找onClick方法。如果您使用的是Fragments,请记住这一点很重要。因为即使您使用片段添加了上面的XML,Android也将而不是在用于添加XML的片段的.java文件中查找onClick方法。

希望这能回答你为什么它不是第一条路。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20481704

复制
相关文章
为什么我会被 Kubernetes “洗脑”?
普元云计算架构师宋潇男点评: Kubernetes已在容器编排之战中取胜,未来很可能会成为“多云”之上的标准层,进而为分布式系统的分发和运行带来根本性的改变,而其自身则会慢慢变得像Linux Kernel一样,成为一种系统底层的支撑,不再引人注目。 原文的标题是The Gravity of Kuberrnetes,但是从内容上看,更像是近些年流行的“XXX is dead. Long live XXX.”的风格,所以在翻译标题的时候我们恶搞了一下。 本文金句: 通过Kubernetes,分布式系统工具将拥有
纯洁的微笑
2018/07/20
9020
为什么我会被Kubernetes“洗脑”?
文 | Jeff Meyerson Kubernetes 已在容器编排之战中取胜,未来很可能会成为“多云”之上的标准层,进而为分布式系统的分发和运行带来根本性的改变,而其自身则会慢慢变得像 Linux Kernel 一样,成为一种系统底层的支撑,不再引人注目。 本文金句: 通过 Kubernetes,分布式系统工具将拥有网络效应。每当人们为 Kubernetes 制作出的新的工具,都会让所有其他工具更完善。因此,这进一步巩固了 Kubernetes 的标准地位。 云提供商并非可替换的商品。不同的云提
顶级程序员
2018/05/03
1.5K0
为什么我会被Kubernetes“洗脑”?
为什么我会被 Kubernetes“洗脑”?
Kubernetes已在容器编排之战中取胜,未来很可能会成为“多云”之上的标准层,进而为分布式系统的分发和运行带来根本性的改变。
DevOps时代
2018/03/20
1.5K0
为什么我会被 Kubernetes“洗脑”?
为什么我会觉得它不好用?
前段时间收到公司信息安全部门的同事发来文档,上面列了目前在用的PO(Process Orchestration)系统爆出的漏洞清单,好家伙,单单一个50000端口就有23个漏洞。
SAP梦心
2022/10/27
4210
为什么安装 Navicat version 9 后,当打开查询或保存报表时,我会收到错误信息?
Cannot create file \"C:\Program Files\PremiumSoft\Navicat 8.2 MySQL\ ... xxx.xxx\". 系统找不到指定的路径。\
明哥的运维笔记
2019/01/30
1.1K0
​为什么我会选择走 Java 这条路?
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
Java技术江湖
2019/10/14
4980
为什么我会选择走 Java 这条路?
最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++、前端之类的方向呢,另外还有一些声音:研究生不是应该去做算法方向么,本科生不就可以做开发了吗,为什么还要读研呢。其实吧,这个问题搁在不同人身上,回答可能也是完全不一样的。我可能还是主要以我的角度出发,结合一些读者的问题,来说一说为什么要选择Java这条路。
程序员黄小斜
2019/04/30
7020
那些奇葩的面试!为什么我会拒绝这些公司的邀请?
昨天,跳槽大师的顾问跑来问我,之前给我推荐了十来家公司,都去面试了吗?我说,太多奇葩,只面了4家,已经拿到2个Offer。看在顾问们一周帮我拿到2个Offer的份上,就答应写篇文章,讲一讲为什么我会拒
分享达人秀
2018/03/26
1.4K0
那些奇葩的面试!为什么我会拒绝这些公司的邀请?
为什么我会选择 React 而不是 Vue?
你注意到我过于圆滑的标题了吗?我将依据我所喜欢的方式去构建这个对话,而不是我客观上认为的唇枪舌战。我想后者并不会起作用。
疯狂的技术宅
2019/03/27
1.4K0
80岁COBOL码农:「扶我起来,这个bug我会修。」
随着失业人数不断飙升,美国的失业系统已经不堪重负。上周,新泽西州州长发布了一份「紧急召集令」,急聘精通「上古语言」COBOL 的程序员,帮助修复已经使用了 40 多年的失业保险系统。
机器之心
2020/04/14
5350
80岁COBOL码农:「扶我起来,这个bug我会修。」
为什么我会选择Vert.x与Kotlin
而在后端方面,2020年笔者在自己的一个业余项目上使用了Spring Boot技术,并整理抽象出了一个基于DDD领域驱动风格的开源框架mydddd-backend。
御剑
2021/06/21
1.5K0
为什么我会选择Vert.x与Kotlin
python做界面,为什么我会强烈推荐nicegui
在网上搜索 "python 做界面" ,得到的结果无非是 Tkinter 、 wxWidgets 、 Qt 、 Gtk 。它们要不然就是打包后太大,要不就是界面丑,要不就是代码繁琐。这些都是 GUI,那么 web 界面又如何?
咋咋
2023/09/01
5.6K0
python做界面,为什么我会强烈推荐nicegui
事件处理类,收到事件后具体的业务处理逻辑
事件生产类,定义如何将业务逻辑的事件转为disruptor事件发布到环形队列,用于消费: package com.bolingcavalry.service; import com.lmax.disruptor.RingBuffer; public class StringEventProducer { // 存储数据的环形队列 private final RingBuffer<StringEvent> ringBuffer; public StringEventProduc
用户8671053
2021/09/26
6110
我会手动创建线程,为什么让我使用线程池?
现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star
用户1516716
2020/05/26
1.2K0
我会手动创建线程,为什么让我使用线程池?
我会手动创建线程,为什么让我使用线程池?
现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star
用户4172423
2020/04/22
7350
我会手动创建线程,为什么让我使用线程池?
为什么你收到的“个性化推荐”总是槽点满满?
互联网时代,信息量惊人膨胀,也意味着用户必须为信息筛选付出更大成本。个性化推荐技术的出现,意味着这个被信息淹没的时代,用户可以直接获得自己最感兴趣的内容推。但现实是,虽然这个技术已被广泛应用于各种互联网平台,但离真正读懂大家的心还很远。
DT数据侠
2018/08/08
6140
为什么你收到的“个性化推荐”总是槽点满满?
为什么CIO们不顾警告继续投资于外包
从历史上看,IT外包在很大程度上一直被视为是推动成本节约和效率提高的机会,抑或是能够让技术团队专注于少数核心领域的机会。尽管这些好处仍然存在,但外包的价值近年来已经发生了变化。
静一
2022/10/27
2410
python中的警告(不显示警告)
# import warnings # warnings.filterwarnings("ignore")
py3study
2020/01/09
3.6K0
点击加载更多

相似问题

iPhone:存储和检索NSMutableArray对象

32

从NSMutablearray保存和检索数据

11

目标C:关于从NSMutableArray中检索元素

21

目标C Iphone开发距离公式

20

目标C iPhone保存文本

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文