Android快速开发框架xUtils---注解模块

xUtils 包含了很多实用的android工具,本篇博客将介绍一下xUtils的注解模块。

  • xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响…
  • xUitls 最低兼容android 2.2 (api level 8)
  • xUtils总共包括四大模块分别是:注解模块、网络模块、图片模块、数据库模块。

1.在build.gradle中依赖xUtils

compile 'org.xutils:xutils:3.3.26'

2.对框架进行初始化,创建一个类 extends Application、在Manifest文件中注册zsyApp

public class zsyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //框架初始化
        x.Ext.init(this);
    }
}

3.使用注解的方式加载布局,绑定控件

@ContentView(R.layout.activity_main)//Activity注解
public class MainActivity extends AppCompatActivity {
    @ViewInject(R.id.viewpager)//布局控件注解
    ViewPager viewPager;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         //只需这一行代码,就将布局和控件加载了。省去了重复的findViewById();
        x.view().inject(this);//加载布局,控件
    }
}

4.使用@Event为按钮绑定监听事件

//通常我们会使用匿名内部类为按钮绑定监听事件
button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
            }
        });
 
    /**
     * button的点击事件
     * 访问修饰符必须是private,方法名可以任意。参数和返回值必须跟上面写的onClick方法一致
     * type 默认值是View.OnClickListener.class,如果是这个可以不写。也就是事件类型
     * value对应的就是控件id,所以我们可以不用findViewById绑定控件
     * @param view
     */
    @Event(type = View.OnClickListener.class, value = R.id.btn)
    private void click(View view) {
        Snackbar.make(view, "点击事件", Snackbar.LENGTH_SHORT).show();
    }
 
    /**
     * button的长按事件
     * @param view
     */
    @Event(type = View.OnLongClickListener.class, value = R.id.btn)
    private boolean Longclick(View view) {
        Snackbar.make(view, "长按事件", Snackbar.LENGTH_SHORT).show();
        return true;
    }

5.Fragment注解

@ContentView(R.layout.inject_view)//加载布局
public class InjectFragment extends Fragment {
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return x.view().inject(this, inflater, container);//fragment注解
    }
}


6.对ListView中ViewHolder进行注解绑定和Item的点击/长按事件

//ListView代码省略,请自行脑补....
public class ListViewAdapter extends BaseAdapter {
    private List<String> listItems;
    private LayoutInflater inflater;
 
    public ListViewAdapter(Context context, List<String> listItems) {
        this.listItems = listItems;
        inflater = LayoutInflater.from(context);
    }
 
    @Override
    public int getCount() {
        return listItems.size();
    }
 
    @Override
    public Object getItem(int position) {
        return listItems.get(position);
    }
 
    @Override
    public long getItemId(int position) {
        return position;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        if (convertView == null) {
            convertView = inflater.inflate(android.R.layout.simple_list_item_1, null);
            viewHolder = new ViewHolder();
            //ViewHolder注解
            x.view().inject(viewHolder, convertView);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        viewHolder.childName.setText(listItems.get(position));
        return convertView;
    }
 
    private class ViewHolder {
        @ViewInject(android.R.id.text1)//加载item的控件
        TextView childName;
    }
}
 
 
    /**
     * ListViewItem的点击事件
     */
    @Event(type = AdapterView.OnItemClickListener.class, value = R.id.list_item)
    private void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Snackbar.make(view, list.get(position) + "点击事件", Snackbar.LENGTH_SHORT).show();
    }
 
/**
     * ListViewItem的长按事件
     */
    @Event(type = AdapterView.OnItemLongClickListener.class, value = R.id.list_item)
    private boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        Snackbar.make(view, list.get(position) + "长按事件", Snackbar.LENGTH_SHORT).show();
        return true;
    }



 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个Android基于快速开发的一个框架 xUtils 它是在aFinal基础上进行重构和扩展的框架 相比aFinal有很大的改善 同时 如果如果你的应用是基于网络的 那么只要处理得当 它会让你彻底的摆脱各种工具类和重复代码的困扰 xUtils 包含了很多实用的android工具 xUtils 源于Afinal框架 对Afinal进行了大量重构 使得xUtils支持大文件上传 更全面的http请求协议支持 拥有更加灵活的ORM 更多的事件注解支持且不受混淆影响 xUtils的四大组件: 一 ViewUtils 你受够了重复冗长的findViewById了嘛 你受够了各种监听事件的绑定了嘛 在这里 你只需要一句注解 如@ViewInject @OnClick 就能轻松摆脱小白似的代码 大大的上了一个档次 二 HttpUtils 支持的HTTP七种请求方式 非常便捷的满足你的接口请求的需要 同时还支持大文件上传下载 以及同步异步请求 三 BitmapUtils 你的程序因OOM强制关闭过嘛 你在为加在网络图片头疼嘛 有了组件 你将永久摆脱前面的问题 四 DbUtils 简单易用又出色的ORM框架 真的是谁用谁知道 直接轻松存储各种对象到sqlite数据库中 同时也能非常方便的进行各种条件查询 甚至分页查询 还有对表中数据的更新删除等操作 真正的实现 一行代码就可以进行增删改查 并且可通过注解自定义表名 列名 外键 唯一性约束 NOT NULL约束 CHECK约束等 支持事务 摘自github ">一个Android基于快速开发的一个框架 xUtils 它是在aFinal基础上进行重构和扩展的框架 相比aFinal有很大的改善 同时 如果如果你的应用是基于网络的 那么只要处理得当 它会让你彻底的摆脱各种工具类和重复代码的困扰 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值