android高级框架xUtils之ViewUtils

xUtils简介:
xUtils 是一个工具类的集合体,其中包含许多实用的Android工具,主要包含四大模块: 
1、 ViewUtils的模块 
2、 HttpUtils的模块  
3、 BitmapUtils的模块 
4、 DBUtils的模块 
 
xUitls最低兼容Android 2.2 (API 8)
导入xutils框架的方法:
方法一、下载地址: https://github.com/wyouflf/xUtils,目前的版本是2.6.14
xutils3目前还不太稳定,不建议使用
方法二、在as中直接引入


正式开始ViewUtils的使用
Android中的ioc框架,完全注解方式就可以进行UI资源事件注入绑定
控制反转(Inversion of Control,英文缩写为 IoC):创建被调用者的工作不再由调用者来完成,因此称为控制反转。
使用注解和反射来实现控制反转(注入)
调用ViewUtils.inject(this),此方法中会利用反射遍历类中所有注解,对注解的功能一一实现


  • activity中Contentview的注解

    @ContentView(value = R.layout.activity_main)

  • activity中View控件的注解
      
    @ViewInject(R.id.btTest)
    private Button mBtnTest;
     
  • activity中事件的注解
      
    
    @OnClick(R.id.btTest)//点击事件只需要注入按钮的id
    public void onClick(View view){
        Toast.makeText(this,"onClick",Toast.LENGTH_SHORT).show();
    }
  • fragment中的使用:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
// 加载布局
View view = inflater.inflate(R.layout.db_fragment, container, false);

/** 依赖注入,
 *第一个是用来反射获取注解,
 *第二个参数用来findviewbyid
 */
 ViewUtils.inject(this, view);

    return view;
}

@ViewInject(R.id.db_test_btn)
private Button stopBtn;

@ViewInject(R.id.result_txt)
private TextView resultText;

@OnClick(R.id.db_test_btn)
public void testDb(View view) {
}
  • BaseAdapter中的使用
    
protected class ViewHolder {
    @ViewInject(R.id.tvItem)
    public TextView tvItem;
}
注入的时候需要传2个参数,第一个是注解所在的类,为了获取注解,第二个是父view,为了调用findviewbyid得到注解所标记的view
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = layoutInflater.inflate(R.layout.layout_listitem, null);
        ViewHolder viewHolder = new ViewHolder();
        //viewHolder.tvItem = (TextView) convertView.findViewById(R.id.tvItem);

         ViewUtils.inject(viewHolder,convertView);
         convertView.setTag(viewHolder);
     }
    initializeViews((T)getItem(position), (ViewHolder) convertView.getTag());
    return convertView;
}
//listview的条目被点击
@OnItemClick(R.id.lvTest)
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     Toast.makeText(this,"onItemClick",Toast.LENGTH_SHORT).show();
}
























  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值