ViewUtils用法:
android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定
ViewUtil模块注解,可以用在Activity,Fragment,BaseAdapter
只要加载布局视图的地方,都能够使用ViewUtils模块中的注解
》 用在Activity中:
1, 加载布局,布局注入:
// 应用到Activity类型上
@ContentView(R.layout.cal_layout)
// onCreate方法中, 使用ioc实现依赖注入
ViewUtils.inject(this);
2,UI绑定注入:
// 注解的value属性值就是该UI的id
@ViewInject(R.id.et_num2)
3,资源的注入:
// id设置资源的ID,type设置资源的类型
// ResType是一个枚举类型
@ResInject(id=R.drawable.ic_launcher,type=ResType.Drawable)
private Drawable drawable1;
@ResInject(id=android.R.color.darker_gray,type=ResType.Color)
private Color color1;
@ResInject(id=R.string.cal_result_tip,type=ResType.String)
private String tip;
4,事件的绑定
事件注解都定义在下面包中:
com.lidroid.xutils.view.annotation.event
@OnClick
事件注解设置的方法格式,必须和对应事件监听的回调方法一致
@OnClick(
{R.id.btn_add,R.id.btn_subtract,
R.id.btn_multiply,R.id.btn_divide})
public void onClick(View view)
{
}
》用在Fragment中:
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// 加载布局
View view = inflater.inflate(R.layout.db_fragment, container, false);
// 依赖注入
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中:
public class ViewHolder
{
@ViewInject(R.id.hotel_image)
public ImageView hotel_image;
@ViewInject(R.id.hotel_name)
public TextView hotel_name;
@ViewInject(R.id.hotel_score)
public TextView hotel_score;
}
convertView = mInflater.inflate(R.layout.hotel_list_item, null);
// 依赖注入
// 在BaseAdapter中绑定UI
// 1,第一个参数ViewHolder
// 2,第二个参数是加载的View
ViewUtils.inject(mHolder, convertView);