文档章节

xutils使用手册(三)——IOC注入

陈小默
 陈小默
发布于 2016/05/16 14:42
字数 266
阅读 65
收藏 2
点赞 2
评论 0

这里我们以上一篇数据库的例子来说明IOC注入如何使用 原始代码部分

    private TextView query_list;
    private EditText et;

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

    private void initView() {
        query_list = (TextView) findViewById(R.id.query_list);
        et = (EditText) findViewById(R.id.edit);
    }

使用了动态注入的代码

    @ViewInject(R.id.query_list)
    private TextView query_list;
    @ViewInject(R.id.edit)
    private EditText et;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //initView();
        x.view().inject(this);
    }

//    private void initView() {
//        query_list = (TextView) findViewById(R.id.query_list);
//        et = (EditText) findViewById(R.id.edit);
//    }

xutils通过反射机制使得程序动态的使用findViewById方式为属性注入对象。

注意:在Android Studio如果使用了动态注入的话,就等于放弃了Android Studio提供的类型检查功能。比如

    private void initView() {
        query_list = (TextView) findViewById(R.id.query_list);
        et = (EditText) findViewById(R.id.edit);
        //在这个方法中如果改为
        //et = (EditText) findViewById(R.id.query_list);
        //Android Studio提供的类型检查机制会提示类型错误
        //但是使用了动态注入的方式的话,Android不会检查类型是否正确
    }

所以到底要不要使用动态注入机制还要看具体的使用场景

© 著作权归作者所有

共有 人打赏支持
陈小默
粉丝 5
博文 36
码字总数 31230
作品 0
武汉
程序员
安卓系统下的多线程断点下载实现2利用开源框架XUtils

使用开源框架可以大大降低开发的难度,减少开发的周期,并且bug也少的多,软件运行起来更稳定。 xUtils简介 xUtils 包含了很多实用的android工具。 xUtils 支持大文件上传,更全面的http请求...

rootusers ⋅ 2015/03/17 ⋅ 0

基于 Spring Boot 的字段元数据管理 - fieldmeta

fieldmeta: 基于springboot的字段元数据管理 version:Alpha 0.0.1 ,码云地址:https://gitee.com/klguang/fieldmeta 元数据(Metadata), 又称中介数据、中继数据,为描述数据的数据(dat...

klguang ⋅ 06/15 ⋅ 0

xutils使用手册(一)——初始化

Xutils使用手册 Xutils的导入与初始化 一、创建一个新的Android工程 这里我们选用的开发环境是Android Studio 创建一个名字为XutilsDemo的应用下面的包名我是用的是我自己注册的域名(虽然没...

陈小默 ⋅ 2016/05/16 ⋅ 0

xutils使用手册(二)——数据库

Xutils使用手册 Xutils对数据库的增删改查 在上一篇博客中我们讲到了怎么在Android Studio环境中添加xutils依赖,这里我们通过xutils来对数据库进行增删改查 一、初始化数据库 在MainApplica...

陈小默 ⋅ 2016/05/16 ⋅ 0

spring-Ioc浅析

一、IoC是什么 IOC——Inversion of Control Ioc—Inversion ofControl,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传...

hello菜bird ⋅ 2016/01/14 ⋅ 0

spring学习——Ioc基础一

一、IoC是什么 IOC——Inversion of Control Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传...

小风89 ⋅ 2015/10/09 ⋅ 0

Spring IoC 浅谈

谈谈对Spring IOC的理解 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的...

The_flying_pig ⋅ 2017/11/03 ⋅ 0

依赖注入和控制反转

IoC——Inversion of Control 控制反转 DI——Dependency Injection 依赖注入 要想理解上面两个概念,就必须搞清楚如下的问题: 参与者都有谁? 依赖:谁依赖于谁?为什么需要依赖? 注入:谁...

HZCoder ⋅ 2016/01/28 ⋅ 0

依赖注入的简单记录

想理解php依赖注入和控制反转两个概念,就必须搞清楚如下的问题: DI——Dependency Injection 依赖注入 IoC——Inversion of Control 控制反转 1、参与者都有谁?  IOC/DI容器就是一个全局...

金于虎 ⋅ 2016/12/23 ⋅ 1

关于Laravel的核心分析

最近一段时间在研究laravel的底层源码,既然这样那得从开头说起,于是去了laravel学院看看别人写的关于laravel的核心分析,链接如下: Laravel 服务容器实例教程 —— 深入理解控制反转(IoC...

全栈coder ⋅ 2017/03/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 35分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 54分钟前 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部