Android的点击事件的深入理解

对Android中的xml实现onClick有点疑问,实现的原理是怎样的?


java中实现是这样的
view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

        }
    });

xml结合java的实现

   样式比较好看,可是他没有实现OnClickListener的接口呢
   android:onClick="function"
   public void function(View view){}

   如果它每部实现了OnClickListener奇怪的是,Activity.class 和View跨类了呢?

   

答案:


   认真查看了源代码


           case R.styleable.View_onClick:
                if (context.isRestricted()) {
                    throw new IllegalStateException("The android:onClick attribute cannot "
                            + "be used within a restricted context");
                }

                final String handlerName = a.getString(attr);
                if (handlerName != null) {
                    setOnClickListener(new OnClickListener() {
                        private Method mHandler;

                        public void onClick(View v) {
                            if (mHandler == null) {
                                try {
                                    mHandler = getContext().getClass().getMethod(handlerName,
                                            View.class);
                                } catch (NoSuchMethodException e) {
                                    int id = getId();
                                    String idText = id == NO_ID ? "" : " with id '"
                                            + getContext().getResources().getResourceEntryName(
                                                id) + "'";
                                    throw new IllegalStateException("Could not find a method " +
                                            handlerName + "(View) in the activity "
                                            + getContext().getClass() + " for onClick handler"
                                            + " on view " + View.this.getClass() + idText, e);
                                }
                            }

                            try {
                                mHandler.invoke(getContext(), View.this);
                            } catch (IllegalAccessException e) {
                                throw new IllegalStateException("Could not execute non "
                                        + "public method of the activity", e);
                            } catch (InvocationTargetException e) {
                                throw new IllegalStateException("Could not execute "
                                        + "method of the activity", e);
                            }
                        }
                    });
                }
                break;
关键是:


 mHandler = getContext().getClass().getMethod(handlerName,
                                            View.class);
 mHandler.invoke(getContext(), View.this);
总结:映射真的不可忽视呀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android 5.0是谷歌开发的一个非常受欢迎的操作系统版本,也被称为Android Lollipop。在该版本中,谷歌对系统进行了许多重要的更改和改进,其中包括对PDF文件的浏览和下载功能。 在Android 5.0中,用户可以使用内置的文件浏览器或第三方应用程序来浏览和打开PDF文件。用户可以通过点击链接或从存储设备中选择文件来打开PDF文件。 要下载PDF文件,用户可以在浏览器中输入PDF文件的网址或通过应用程序中的下载按钮来下载文件。下载的PDF文件将保存在设备的下载文件夹中。用户可以通过打开文件浏览器并导航到下载文件夹来访问下载的PDF文件。 在Android 5.0中,用户还可以使用打印功能来打印PDF文件。用户只需打开PDF文件,然后选择打印选项。系统将自动搜索并显示附近可用的打印机。用户可以选择打印机并进行打印设置,然后开始打印PDF文件。 总的来说,Android 5.0系统为用户浏览和下载PDF文件提供了方便和灵活的方式。用户可以通过内置的浏览器或第三方应用程序打开PDF文件,并通过下载功能将文件保存在设备上。此外,用户还可以使用打印功能来打印PDF文件。这些功能的引入使得在Android设备上处理PDF文件变得更加高效和便捷。 ### 回答2: Android 5.0是一款开源的移动操作系统,广泛应用于各智能手机、平板电脑和其他移动设备。在这个系统中,用户可以享受到多种功能和特性,其中之一就是支持PDF下载。 PDF(Portable Document Format,便携式文档格式)是一种广泛使用的电子文档格式,它可以在不同的平台上保持文档的格式和内容一致性。在Android 5.0系统中,用户可以通过浏览器或者其他支持PDF的应用程序下载和查看PDF文件。 Android 5.0系统的PDF下载功能提供了更好的用户体验和便捷性。用户可以通过简单的点击或者长按链接的方式,轻松将PDF文件保存到设备中。一旦下载完成,用户可以使用系统自带的PDF阅读器或者其他第三方应用程序来打开和阅读这些文件。 此外,Android 5.0还提供了一些额外的功能和特性来改善PDF的使用体验。例如,用户可以使用系统的搜索功能来快速查找文档中的关键词;他们还可以进行书签操作,方便在文档中进行标记和导航。 总之,深入理解Android 5.0系统的PDF下载功能可以让我们更好地利用这个功能来下载和阅读PDF文件。不仅仅是提供了简单的下载操作,它还提供了丰富的功能和特性,以满足用户各种对于PDF文档的需求。无论是进行工作、学习还是娱乐,Android 5.0系统的PDF下载功能都能够为我们提供便捷的PDF文件访问方式。 ### 回答3: Android 5.0系统(也称为Android Lollipop)是谷歌推出的一个重要的Android操作系统版本。它引入了许多新的特性和改进,对于开发者和用户来说都具有重要意义。在此我们将深入理解Android 5.0系统的PDF下载功能。 Android 5.0系统在系统级别提供了一个强大的PDF下载功能。这意味着开发者可以在应用程序中集成PDF下载功能,而无需依赖第三方库或其他解决方案。这个功能可以实现在应用程序中直接下载和查看PDF文件,为用户提供了更好的体验。 在Android 5.0系统中,开发者可以使用系统提供的DownloadManager来进行PDF文件的下载。DownloadManager提供了一个简单而强大的界面,使开发者能够轻松地管理下载任务,包括暂停、取消和恢复等操作。通过使用DownloadManager,开发者可以轻松地实现断点续传、下载进度显示和错误处理等功能。 除了DownloadManager,Android 5.0系统还提供了PDF渲染的支持。开发者可以使用系统提供的PdfRenderer来渲染和显示PDF文件。PdfRenderer提供了高性能和高质量的PDF渲染功能,能够准确地显示PDF文档中的内容,包括文字、图像和标注等。开发者可以使用PdfRenderer创建自定义的PDF阅读器应用程序,提供丰富而灵活的PDF浏览体验。 总结来说,Android 5.0系统提供了强大的PDF下载和渲染功能,使开发者能够轻松地创建功能丰富的PDF应用程序。这个功能不仅提升了应用程序的用户体验,还为开发者带来了更多的创新和商机。通过深入理解Android 5.0系统的PDF下载功能,开发者可以更好地利用这个特性,开发出更好的PDF相关的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值