首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对空对象调用findViewById。哪个不是null

对空对象调用findViewById,其中"空对象"指的是一个空的父视图或者一个不存在的父视图。在Android开发中,findViewById是用来获取布局文件中定义的控件的方法。如果我们在一个空的父视图或者一个不存在的父视图中调用findViewById方法,是无法找到相应的控件的,因此返回的结果会是null。

对于这个问题,正确的答案是"findViewById是null"。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • @NotNull注解引出的关于Java空指针的控制

    1)在已经的String(字符串)调用 equal()和 equalsingnoreCase()而不是未知的对象 通常在已经的非空字符串在调用equals()。...但是这种处理必须非常小心地处理对空值的检查而不是检查非法输入。同样要注意,定义可以使空值的或者不可以空值的时候,提醒调用者作出被告知的决定。失败之后的选择或者接受空值也是一个你需要重视的重要设计。...如果一个方法返回一个对象哪个调用者要遍历这个对象哪个调用者就要使用一些类似Collection.iterator()的方法去返回iterator。...如果调用者没有任何的上述的这些方法,那么有可能返回的是空对象不是空(null)。空对象是一个特别的对象,它在不同的上下文中有不同的含义。...像这些返回Contrainter或者Conllection类型的方法的情况中,里面为空的对象(Empty object)应该被使用而不是返回空。

    1.9K00

    Android View 源码解析(一) - setContentView

    if (mContentParent == null) { //第一次调用 //下面会详细分析 installDecor(); }...实质为阐释mDecor和mContentParent对象 (扩展)关于设置Activity属性需要在setContentView方法之前调用的问题 在设置Activity属性的时候 比如requestWindowFeature...说明在Activity的布局改动时 (setContentView或者addContentView 方法执行完毕后会调用改方法) 所以各种View的findViewById方法什么的可以放在这里 setContentView...源码总结 创建一个DecorView的对象mDector 该mDector将作为整个应用窗口的根视图 根据根据Feature等style theme创建不同的窗口修饰布局文件 并且通过findViewById...performLaunchActivity方法来创建要启动的Activity组件 这个过程中还会为该Activity组件创建窗口对象和视图对象 当组件创建完成后用过调用该类的handleResumeActivity

    71640

    Android文件读写和使用SharedPreferences储存数据

    reader = null; private EditText editText = null; @Override protected void onCreate(Bundle...在 onDestroy 方法中调用 saveText 来储存 EditText 中的数据。,在 onCreate 方法中我们进行恢复 EditText 中的数据。...得到了SharedPreferences对象之后我们就可以利用它进行数据的储存了: (1) 调用Sharedpreferences 对象的 edit() 方法获取一个SharedPreferences.Editor...对象 (2) 使用SharedPreferences.Editor 对象的特性方法储存数据(putString()...) (3) 调用SharedPreferences.Editor 对象的apply...当然,这里的代码还有很多不足之处,比如没有实现用户名和密码检测,没有对空的用户名和密码进行处理,有兴趣的小伙伴们可以自己实现。 如果博客中有什么不正确的地方,还请多多指点。 谢谢观看。。。

    1.9K10

    ViewStub延迟加载

    在项目中,难免会遇到这种需求,在程序运行时需要动态根据条件来决定显示哪个View或某个布局,最通常的想法就是把需要动态显示的View都先写在布局中,然后把它们的可见性设为View.GONE,最后在代码中通过控制...使用时可以为ViewStub指定一个布局,在Inflate布局的时候,只有ViewStub会被初始化,然后当ViewStub被设置为可见的时或调用了ViewStub.inflate()的时候,ViewStub...4、然后第23~28行,就是得到ViewStub的LayoutParams布局参数对象,如果存在就把它赋给被inflate的布局对象,然后把inflate的布局对象添加到父视图中。...从上述可知,当我们第二次调用ViewStub.inflate()方法的时候,因为已经移除了ViewStub对象,在第2、4行,得到的viewParent就为null,此时判断时候就会走else抛出一个IllegalStateException...4.3中所讲到的ViewStub指向的布局文件解析inflate并替换掉当前ViewStub本身,并不是完全意义上的替换(与include标签不太一样),替换时,布局文件的layout params是以

    1.6K10

    Kotlin干掉了findViewById,但用不好也会有性能问题

    在一些需要后续变动的 View,都会使用一个变量将 View 存起来,就是为了避免每次都调用 findViewById()。...如果你对其原理有所了解,应该知道它其实是使用了「懒加载」,并不是每次调用 View ID,Kotlin 都帮我们去自动 findViewById(),而是用时获取,取到后就缓存下来,方便下次再用。...看似没有任何问题,我们可以放心使用,但是实际上还有一些场景,可能会导致频繁的调用 findViewById(),引发效率问题。...if (var10000 == null) { return null; } var2 = var10000.findViewById(var1...并不是,借助 inflate 的 View 对象就可以做到。 view.tvName.text = "承香墨影(ID:cxmyDev)" 好像这也不是必须的,那再换个场景。

    2.7K10

    Android Binder 机制——AIDL 的使用和原理分析

    ; } }; onServiceConnected 的参数中,第一个是 Service 组件的名字,表示哪个服务被启动了,重点是类型为 IBinder 的第二个参数,在 Service.java...) { if ((obj == null)) { return null; } //查找本地对象 android.os.IInterface iin =...注入到父类(Binder) this.attachInterface(this, DESCRIPTOR); } 在 Binder$BinderProxy 类中的实现: BinderProxy 并不是...类型的对象,那么它就是 Binder 本地对象,将它直接返回给 Client 调用;否则,使用 UserManagerImpl$Proxy 类将其进行包装后再返回,Proxy 类也实现了 IUserManager...return super.onTransact(code, data, reply, flags); } 在 Server 进程中,onTransact 会根据 Client 传过来的方法代号决定调用哪个方法

    64620

    Activity Result API详解,是时候放弃startActivityForResult了

    registerForActivityResult()方法的返回值是一个ActivityResultLauncher对象,这个对象当中有一个launch()方法可以用于去启用Intent。...比如,我想要调用手机摄像头去拍摄一张图片,并且得到这张图片的Bitmap对象,那么就可以使用TakePicturePreview这个Contract。...另外由于TakePicturePreview这个Contract不需要输入参数,所以我们调用launch()方法的时候直接传入null就可以了。 看到这里,可能有些读者朋友会比较好奇。...虽然我觉得这个必要性并不是很强,因为内置Contract已经可以帮助我们应对绝大多数场景了。 不过,自定义Contract并不是一件复杂的事情。相反,它非常简单,所以这里还是简略提一下吧。...在onActivityResult()方法当中,我们为了区分这个结果是来自之前的哪个任务的,所以要在这里再对requestCode进行判断。

    1.8K30

    Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」

    registerForActivityResult()方法的返回值是一个ActivityResultLauncher对象,这个对象当中有一个launch()方法可以用于去启用Intent。...比如,我想要调用手机摄像头去拍摄一张图片,并且得到这张图片的Bitmap对象,那么就可以使用TakePicturePreview这个Contract。...另外由于TakePicturePreview这个Contract不需要输入参数,所以我们调用launch()方法的时候直接传入null就可以了。 看到这里,可能有些读者朋友会比较好奇。...虽然我觉得这个必要性并不是很强,因为内置Contract已经可以帮助我们应对绝大多数场景了。 不过,自定义Contract并不是一件复杂的事情。相反,它非常简单,所以这里还是简略提一下吧。...在onActivityResult()方法当中,我们为了区分这个结果是来自之前的哪个任务的,所以要在这里再对requestCode进行判断。

    90630

    Toast问题深度剖析(二)

    这也是我们今天重点讲的方案 “如果采用 View 系统方案,那么我要往哪个控件中添加我的 Toast 控件呢?” 在Android进程中,我们所有的可视操作都依赖于一个 Activity 。...return mDecor; } 而这个函数,将在 Activity.findViewById 的时候调用: //code Activity.java public View findViewById(...(@IdRes int id) { return getDecorView().findViewById(id); } 因此,只要我们只要调用findViewById 函数,一样可以保证...相信你可能迫不及待的回答不是 onResume 回调的时候么?实际上,在 onResume 的时候,根本还没处理跟界面相关的事情。...是不是在 WindowManager.addView 之后呢?我们在 onResume之后会调用Activity.makeVisible,里面会调用 WindowManager.addView。

    4.9K124

    android学习笔记----ListView和各种适配器简介

    View view; if (convertView == null) { // 创建新的view对象,可以通过打气筒把一个布局资源转换成一个...调用getView会回调实现类的getView,我们来看看mAdapter什么时候调用了getView,现在来看看AbsListView里面的mAdapter.getView(...)会在哪里调用?...意思就是从一个list集合中(装的map集合)获取数据,from要输入键和值,to就是给出到底哪个textview显示键,哪个textview显示值,给出textview的id就可以了。...当convertView为null的时候,创建一个ViewHolder对象,并将控件的实例都存放在ViewHolder里,然后调用View的setTag方法,将ViewHolder对象存储在View中,...当convertView不为null时,调用View的getTag方法,把ViewHolder对象重新取出。

    2.2K10
    领券