1_xUtils3 简介
1.1_简介
xUtils3 是 xUtils 的升级版,功能和性能都在提高,xUtils3 主要有四大模块:注解模块,联 网模块,图片加载模块,数据库模块;

注解模块: 用于在 Activity 或者 Fragment 中初始化布局文件,便于代码更加简洁;

联网模块: xUtils3 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词), 拥有更加灵活的 ORM,更多的事件注解支持且不受混淆影响;

图片加载模块: 加载图片很方便并且不用担心内存溢出,还可以图片绑定支持 gif(受系统兼容 性影响, 部分 gif 文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转.

数据库模块: 数据库 api 简化提高性能, 达到和 greenDao 一致的性能

1.2_xUtils3 的主要功能
1、注解

2、联网请求文本数据

3、大文件下载

4、大文件上传

5、请求图片

6、数据库模块达到和 greenDao 一致的性能

1.3_下载地址&运行 xUtils3 案例
https://github.com/wyouflf/xUtils3

2_xUtils3 注解模块
主要讲在 Activity 中使用 xUtils3 的注解和在 Fragment 中使用 xUtils3 的注解

1.1_XUtils3MainActivity 布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent" android:orientation="vertical"><!--标题栏 --><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"android:layout_height="50dp" android:background="@android:color/holo_blue_light"android:gravity="center" android:orientation="horizontal"><TextView android:id="@+id/tv_title" android:layout_width="wrap_content"android:layout_height="wrap_content" android:textColor="@android:color/white"android:textSize="20sp"/></LinearLayout><Button android:id="@+id/btn_annotation" android:layout_width="match_parent" android:layout_height="wrap_content"android:text="xUtils3 注解模块"/><Button android:id="@+id/btn_net" android:layout_width="match_parent" android:layout_height="wrap_content"android:text="xUtils3 联网模块"/><Button android:id="@+id/btn_image" android:layout_width="match_parent" android:layout_height="wrap_content"android:text="xUtils3 请求图片"/>
</LinearLayout>

1.2_在 Activity 中使用注解初始化布局
Activity 的注解

1.在 Application 的 oncreate 方法中加入下面代码: x.Ext.init(this);

2.在 Activity 的 oncreate 方法中加入下面代码: x.view().inject(this);

3.加载当前的 Activity 布局需要如下注解: @ContentView 加入到 Activity 的上方

4.给 View 进行初始化需要如下注解: @InjectView

5.处理控件的各种响应事件需要如下注解: @Envent 使用注解后你会发现写代码更加简洁了

@ContentView(R.layout.activity_xutils3)
public class XUtils3Activity extends Activity {/*** 初始化 TextView*/@ViewInject(R.id.tv_title)private TextView tv_title;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 添加注解         x.view().inject(this);// 设置文本       tv_title.setText("xUtils3 详解");}/*** 多个控件的点击事件共用一个方法** @param view*/@Event(value = {R.id.btn_annotation, R.id.btn_net, R.id.btn_image, R.id.btn_database})private void getEnvent(View view) {switch (view.getId()) {case R.id.btn_annotation:Intent intent = new Intent(this, FragmentActivity.class);startActivity(intent);break;case R.id.btn_net:Toast.makeText(XUtils3Activity.this, "进入网络模块", Toast.LENGTH_SHORT).show();break;case R.id.btn_image:Toast.makeText(XUtils3Activity.this, "进入网络模块", Toast.LENGTH_SHORT).show();break;case R.id.btn_database:Toast.makeText(XUtils3Activity.this, "进入数据库模块", Toast.LENGTH_SHORT).show();break;}}/*** 单个点击事件** @param view*/@Event(value = R.id.btn_database)private void database(View view) {Toast.makeText(XUtils3Activity.this, "进入数据库模块单独的", Toast.LENGTH_SHORT).show();}
}

1.3_在 Fragment 中使用注解初始化布局
1_在 FragmentActivity 中添加 Fragment

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><!-标题栏 --><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="50dp"android:background="@android:color/holo_blue_light"android:gravity="center"android:orientation="horizontal"><TextView android:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@android:color/white"android:textSize="20sp"/></LinearLayout><FrameLayoutandroid:id="@+id/fl_content"android:layout_width="match_parent"android:layout_height="match_parent"/>
</LinearLayout>

Fragment 的注解 代码如下

// 设置布局文件
@ContentView(R.layout.activity_frament)
public class FragmentActivity extends android.support.v4.app.FragmentActivity {// 初始化布局里面的文本控件
    @ViewInject(R.id.tv_title)private TextView tv_title;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 注入 Activityx.view().inject(this);// 直接使用 TextView控件tv_title.setText("在 Fragment 中使用注解初始化布局");FragmentManager fm = getSupportFragmentManager();FragmentTransaction transaction = fm.beginTransaction();transaction.replace(R.id.fl_content, new DemoFragment());transaction.commit();}
}

2_DemoFragment 布局和代码
布局 fragment_demo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent" android:orientation="vertical"><Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content"/><TextView android:id="@+id/tv_text"android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>

代码

@ContentView(R.layout.fragment_demo)
public class DemoFragment extends Fragment {@ViewInject(R.id.tv_text)private TextView textView;@ViewInject(R.id.btn)private Button button;@Nullable@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {return x.view().inject(this, inflater, container);}@Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);textView.setText("该控件使用注解初始化的");button.setText("我是按钮");button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(getActivity(), "点击了", Toast.LENGTH_SHORT).show();}});}
} 

转载于:https://www.cnblogs.com/yanglanwan/p/11299370.html

xUtils3 注解模块相关推荐

  1. Android xUtils3源码解析之注解模块

    本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...

  2. Xutils3 数据库模块的使用方法

    1.开源地址 https://github.com/wyouflf/xUtils3/tree/master 2.导入工程 使用Gradle构建时添加一下依赖即可: compile 'org.xutil ...

  3. xutils3使用方法(很全面)

    转载请注明出处:http://blog.csdn.net/tyk9999tyk/article/details/53306035 1.xUtils3简介以及文章更新 更新 2017/03/30 给表增 ...

  4. xutils3使用方法

    1.先来认识一下xUtils3 更新 2017/03/30 给表增加字段 需求:我们需要在parent表中添加一个"username"字段. 步骤: 1.在parent类中添加&q ...

  5. xutils断点续传_xUtils3的简单介绍

    xUtils3的简介 xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能. 1.xUtils包含了很多 ...

  6. Android xUtils3源码解析之图片模块

    本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...

  7. Android xUtils3源码解析之数据库模块

    本文已授权微信公众号<非著名程序员>原创首发,转载请务必注明出处. xUtils3源码解析系列 一. Android xUtils3源码解析之网络模块 二. Android xUtils3 ...

  8. Android注解学习(2)

    最近考试周没什么时间写,回归正题.前面的一次简单的讲了关于注解的的基础部分,这一次分析xutils注解封装的源码(奉上github源码). 补充下:xUtils 2.x对Android 6.0兼容不是 ...

  9. android xutil 数据库,Android XUtils3框架的基本使用方法(二)

    上一篇Android中XUtils3框架使用方法详解(一)文章,主要介绍了XUtil3的注解模块,网络模块,图片加载模块,今天给大家带来数据库模块的讲解,现在主流的ORM框架很多,比如OrmLite, ...

  10. 手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源...

    代码已经托管到码云上,感兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 本次的网络资源地址使用的是时光网的api接口,地址如下: ...

最新文章

  1. 大数据虚拟化:VMware正在虚拟化Hadoop
  2. java 连接池 druid_从零开始学 Java - 数据库连接池的选择 Druid
  3. 安装asp.net mvc4后mvc3项目编译报错
  4. 故障申报系统php源码,运维不再专业救火 不会PHP照样找出代码性能问题
  5. [MyBatisPlus]测试BaseMapper的功能测试自定义功能
  6. inotify之文件系统事件监控使用入门
  7. 【 OJ 】查找最大
  8. 工具使用-----Jmeter教程 简单的压力测试
  9. MATLAB中if (0)
  10. 适用于苹果Mac的 4 个好用的 CAD 软件
  11. OpenCV-图像处理(09、模糊图像二)
  12. 拯救者Y7000在CentOS7上面无法打开网卡 Ath10k (QCA9377)
  13. 图的点,边和度之间的关系
  14. 体验服和平精英服务器维护,和平精英:体验服申请入口
  15. runtime Caller 方法再封装
  16. 网络应用自建利器-Google AppEngine
  17. PHP是什么,能做什么,为什么用PHP
  18. 有关session生命周期
  19. 计算机截图方法,电脑简单又实用的截图方法推荐
  20. Device /dev/sdb excluded by a filter.

热门文章

  1. NSArray的排序问题
  2. ios7学习之路七(隐藏虚拟键盘,解决键盘挡住UITextField问题)
  3. win10下安装Mysql5.7
  4. 如何关闭MyEclipse自动更新
  5. 记录一枚验证URL的js正则表达式
  6. GCC、VS对C++标准的支持情况总结(转载)
  7. 基于C++11实现线程池的工作原理
  8. 天气之子电脑壁纸_今年最受期待的5部日本动画电影,新海诚新作《天气之子》领衔...
  9. 消息队列实现socket 消息同步_消息队列二三事
  10. cdr怎样把一张图片随意变形_如何设计一张趣味的海报?