Android高级之xUtils框架(一):ViewUtils的用法

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗? 本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。 阅读详情

xUtils 一个 Android 公共库框架,主要包括四个部分:View,Db, Http, Bitmap 四个模块。

View 模块主要的功能是通过注解绑定 UI,资源,事件。

Db 模块是一个数据库 orm 框架, 简单的语句就能进行数据的操作。

Http 模块主要访问网络,支持同步,异步方式的请求,支持文件的下载。

Bitmap 模块是加载图片以及图片的处理, 支持加载本地,网络图片。而且支持图片的内存和本地缓存。

本篇文章主要介绍ViewUtils。

一。在ACtivity中用ViewUtils注解:

之前我们写项目时,必不可少的步骤就是设置布局文件、找控件,我们的做法是在MainActivity中的onCreate()中setContentView(R.layout.activity_main)、findViewById();我们可以用注解的方式实现这些步骤。注解的步骤主要有:

@ContentView(R.layout.main):相当于setContentView();写在类的上面,注意不用用分号

@ViewInject(R.id.textView) 相当于findViewById();写在对应空间的上面,

@ViewUtils.inject(this);让注解生效,写在onCreate()或其他方法中,

这就是最基本的注解的用法了,具体实例如下:

@ContentView(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
    @ViewInject(R.id.textView)
    private TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        让注解生效
        ViewUtils.inject(this);
        textView.setText("ViewUtils载入成功");
    }
}

二。在Fragment中用注解:

在Fragment中绑定控件时,让注解生效的参数不同:

ViewUtils.inject(handler,view);

第一个参数表示持有者,一般传this,具体实例如下:

public class BlankFragment extends Fragment {
    public BlankFragment() {
       
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_blank2, container, false);
    }
    @ViewInject(R.id.fragment_text)
    private TextView textView;
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ViewUtils.inject(this, view);
        textView.setText("Fragment绑定成功");
    }
}

三。在Adapter中使用ViewUtils

在Adapter中绑定时,绑定convertView,具体代码如下:

 public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView==null){
            convertView= LayoutInflater.from(context).inflate(R.layout.adapter_layout,null);
            convertView.setTag(new ViewHolder(convertView));
        }
        ViewHolder holder = (ViewHolder) convertView.getTag();
        holder.textView.setText(list.get(position));
        return convertView;
    }
    public static class ViewHolder{
        @ViewInject(R.id.textView_adapter)
         private TextView textView;
        public ViewHolder(View itemView){

//1参:持有者,2参容易理解
         
  ViewUtils.inject(this,itemView);
        }
    }

四。资源的绑定,当我们要使用系统的资源时,原始的方式是:

String appName = getResource().getString(R.String.app_name);

用注解绑定时:用@ResInject(id,values),代码如下:

   @ResInject(id=R.string.app_name,type = ResType.String)
    private String appName;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        让注解生效
        ViewUtils.inject(this);
        textView.setText("xUtils载入成功"+appName);
    }

五。用注解对onClick()方法进行绑定。

当绑定监听方法时应当注意,这些方法必须是在xUtils包中classes.jar/com.lidroid.xutils/view/annotion/event中存在的,否则需要自定义注解。绑定用@onClick(int[]id,int parentId[]),具体如下:

 @OnClick(R.id.textView)
    public void click(View v){
        Toast.makeText(MainActivity.this, "您点击了TextView", Toast.LENGTH_SHORT).show();
    }

这里需要注意:1.id的个数必须和parent Id的个数保持一致;2.parentId默认为0,可不写

六。自定义注解

如果我们想对一些xUtils中没有提供的监听方法通过注解绑定时,可自定义注解,这里以SwipeRefreshLayout的下拉刷新为例。

1.新建一个类,选择Annotation。

2. 定义注解:

//注解使用的目标:方法
@Target(ElementType.METHOD)
//注解什么时候运行:运行时运行
@Retention(RetentionPolicy.RUNTIME)
//有三个参数
@EventBase(
//注解的接口类型
        listenerType = SwipeRefreshLayout.OnRefreshListener.class,
//set方法的名字
        listenerSetter = "setOnRefreshListener",
//方法的名字,是接口对象调用的方法名
        methodName = "onRefresh"
)
//仿照提供的ViewUtils中的方法注解写上属性
public @interface Refresh {
    int[] value();
    int[] parentId() default{0};
}

3.在主函数中写一个方法,用注解绑定即已完成自定义:

  @Refresh(R.id.fragment_refresh)
    private void click() {
        Toast.makeText(getActivity(), "正在刷新", Toast.LENGTH_SHORT).show();
        handler.sendEmptyMessageAtTime(0,3000);
    }

综上所述,注解可用于修饰类、方法、参数、属性。




2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ 华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。 阅读详情

相关推荐

嵌入式常用通信协议 #概述

嵌入式通信协议

AFK3060的博客 2117

推荐一款强大的Android UI工具库:ViewUtils

推荐一款强大的Android UI工具库:ViewUtils 在移动应用开发中,UI界面的设计和交互是至关重要的一环。今天,我要向大家推荐一个极其实用的Android UI工具库——。这个开源项目由开发者youth5201314维护,旨在简化Android视图操作,提升开发效率。 项目简介 ViewUtils是一个集合了大量实用方法的Java库,它提供了对Android View的各种便捷操作,如...

gitblog_00066的博客 470

双目视觉入门实战:用Matlab标定相机,再到Python OpenCV完成测距的完整链路

本文详细介绍了双目视觉技术的完整实现流程,从Matlab相机标定到Python OpenCV测距的全链路实践。重点解析了Matlab与OpenCV的参数转换技巧,以及立体校正、视差计算等关键步骤的代码实现,帮助开发者快速掌握双目测距系统的搭建方法。

weixin_29166013的博客 447

Android开源库——xUtils框架

xUtils框架 概述 主要是用于快速开发,相当于一个工具集? 终于有一个国人开发的了!!! 简介终于是中文的了,大部分介绍内容都是来自于项目地址上的介绍,可以跳过这部分 项目地址(旧版):https://github.com/qxbl/xUtils 项目地址(新版):https://github.com/wyouflf/xUtils3 xUtils2.x介绍 xUtils 2....

旧日灯塔 4645

CentOS 7 安装 Python 3.10

我这里已经软链接了,正常未链接之前是python->python2.7而不是python3.10。python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用。2. 安装 Python 3.10 必需的 openssl >= 1.1.1。默认的centos7是没有安装pip,先添加epel扩展源。/usr/bin/python 修改为如下。添加软链接,将原来的链接备份。添加python3的软链接。

bensonyang888的博客 2905

PointPainting 复现

三维目标检测

weixin_58207716的博客 4536

Android面试基础(一)IOC(DI)框架(ViewUtils)讲解_反射和自定义注解类

Android面试基础(一)IOC(DI)框架(ViewUtils)讲解_反射和自定义注解类 1. Android中的IOC(DI)框架 1.1 ViewUtils简介(xUtils中的四大部分之一) IOC: Inverse of Controller 控制反转。 DI: Dependency Inject 依赖注入 ...

豆子 369

RK3568-MIPI屏幕调试实战:LCD初始化时序解析与转换

本文详细解析RK3568平台MIPI屏幕调试中的LCD初始化时序,重点介绍DCS Write与Generic Write数据类型的转换方法,并提供厂家时序到RK格式的实战转换案例。通过理解上电初始化时序的重要性,帮助开发者快速解决屏幕不亮、花屏等常见调试问题,提升RK3568硬件开发效率。

d6e7f8g9h的博客 186

Android Xutils和Xutils3的基本使用

这几天把公司的电商软件第一版完成之后,打算把项目重新优化并排版一下,让软件整体看起来更加美观。作为一名优(lan)雅(duo)的程序猿,一定要时刻保持优雅的情操,比如FindViewById()和SetOnclick等方法,用起来是真心不优雅,打算使用Xutils3的注解功能,之前一直使用的是Xutils,但是Github上面的Xutils已经很久没有更新了,而且Xutils对Android6.0

乔培宸的博客 2338

避坑指南:在Linux服务器上用Conda安装antiSMASH 5.2.0(解决Jinja2报错和Matplotlib权限问题)

本文详细介绍了在Linux服务器上使用Conda安装antiSMASH 5.2.0的避坑指南,重点解决了Jinja2报错和Matplotlib权限问题。通过创建专用conda环境、安装指定版本依赖包和配置缓存目录,帮助用户顺利完成antiSMASH的本地部署,适用于批量处理基因组分析任务。

weixin_26911099的博客 316

深入解析BlueZ5与D-Bus:Linux蓝牙开发实战指南

本文深入解析BlueZ5与D-Bus在Linux蓝牙开发中的核心应用,提供从环境搭建到实战开发的完整指南。通过详细代码示例和调试技巧,帮助开发者掌握蓝牙协议栈与D-Bus接口的交互方法,实现高效蓝牙设备管理与GATT服务开发。

weixin_28292761的博客 451

Xutils的注解示例

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) package com.home.testxutils; import android.app.Activity; import android.os.Bundle; import android.vie...

孤云博客 2529

深度学习在地质勘探中的应用:使用Python构建卷积神经网络进行地震数据分析

在本文中,我们介绍了如何利用深度学习技术,特别是卷积神经网络(CNN),来处理和分析地震数据。我们使用了Python编程语言和TensorFlow框架构建了一个CNN模型,并使用地震数据进行了训练和评估。在本文中,我们将探讨如何利用深度学习技术,特别是卷积神经网络(CNN),来处理和分析地震数据。首先,我们需要获取地震数据集。通过本文的介绍,希望您能对深度学习在地质勘探领域的应用有更深入的了解,并能够应用这些技术来解决实际问题。在准备好地震数据和构建CNN模型后,我们需要将数据分为训练集和测试集。

斌擎科技 1472

android高级框架xUtils之ViewUtils

xUtils 是一个工具类的集合体,其中包含许多实用的Android工具,使用这些工具将给我们的编程带来很多方便

program008的博客 1116

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

xUtils框架

xUtils框架一.xUtils框架简介二.DbUtils模块简介实例三.ViewUtils模块简介实例四.HttpUtils模块简介实例五.BitmapUtils模块简介实例 一.xUtils框架简介 xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响… xUt...

weixin_44275194的博客 1303

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

XUtils3框架:Android开发四大核心模块实战指南

Android开发中,开源工具库能显著提升开发效率并减少样板代码。XUtils3作为轻量级框架,整合了数据库操作、网络请求、图片加载和视图注入四大核心模块,通过模块化设计支持按需引入。其技术价值体现在API简洁性上,例如数据库CRUD操作代码量可减少60%,网络请求简化为单行调用。框架深度适配Android生命周期,自动管理网络请求与界面销毁关联,有效避免内存泄漏问题。在应用场景上,XUtils3已被超过2.3万个Android项目采用,包括多个百万级用户的商业应用。对于开发者而言,掌握XUtils3的环境

weixin_30645617的博客 389

android框架xUtils使用介绍

xUtils简介 xUtils 包含了很多实用的android工具。 xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls最低兼容android 2.2 (api level 8) 目前xUtils主要有四大模块: DbUt...

lizhong 2803

Android学习——xUtils框架

xUtils框架 xUtils框架介绍 xUtils包含了很多实用的android工具。 xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更多灵活的ORM,更多的事件注解支持且不受混淆影响… xUitls最低兼容android 2.2(api等级8) 目前xUtils主要的四大模块: DbUtils模块;ViewUtils模块;HttpUtils模块;BitmapU...

UUUUUltraman的博客 1726

常见Android开源框架使用笔记之——xUtils框架

初探xUtils框架,并介绍用法和简单分析

骑猪追大象 1万+

ViewUtils for com.lidroid.xutils

*    目前移动APP的开发用户交互体验应该要放在首位。     android L  扁平化、动画式、简约而不简单的交互设计觉得体验很好。如今的APP终端 不论CPU、内存、  * 分辨率等硬件都搭载到不错的配置。所以使用xutils 框架就可以大量简化你在处理数据库数据,网络加载,网络通    信及布局设计响应方面所用的时间。这就意味  * 着你可以把节省的这大量时间来思考整个APP

dehua_ted的专栏 1089

xUtils ViewUtils 用法

xUtils 工具包的简介在上一篇文章中已经说了,今天来简单介绍一下它的ViewUtils模块。

浩海的专栏 7080

android--xUtils开发框架

xUtils简介 xUtils 包含了很多实用的android工具。 xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls 最低兼容android 2.2 (api level 8) 目前xUtils主要有四大模块: DbUtils模块: android中的orm

超宇的博客 2343

Android Xutils 框架

xUtils简介 xUtils 包含了很多实用的android工具。xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...xUitls最低兼容android 2.2 (api level 8) 目前xUtils主要有四大模块: DbUtil

IssaE的博客 913

商城项目实战 | 10.1 xUtils3 详细介绍以及 ViewUtils 的使用方法

本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。 刚开始的时候,在 GitHub 上面出现了一款强大的开源框架叫 xUtils,里面包含了很多实用的android工具,并且支持大文件上传,更全面的 http 请求协议支持(10种谓词),拥有更加灵活的 ORM,更多的事件注解支持且不受混淆影响,该框架最低兼容版本为 android 2.2 (api level

LT5505的博客 624

xUtils2.x(ViewUtils)

虽然现在都以3.x为主,但是我还是希望能够从源码上学习xUtils的技术,可以从中学到更多的东西,所以先从2.x版本的xUtils入手,深度学习这款综合性框架。 GitHub地址:https://github.com/wyouflf/xUtils ----- 这是xUtils2.x版本 GitHub地址:https://github.com/wyouflf/xUtils3 ----- 这是xU

羊羊的学习旅程 464

Android xUtils框架(二) ViewUtils

框架地址:https://github.com/wyouflf/xUtils 作用: 完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。

打渔还是晒网 —— stone 1万+
上一篇: Android高级之xUtils框架(四):DBUtils的用法
下一篇: Android高级之Volley框架(三):ImageRequest、ImageLoader、NewworkImageView的使用
FightFightFight
博客等级 码龄11年 508粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值