不需要ViewInject,简化你的findViewById

这篇博客会非常非常短,大家在写代码的时候可能烦透了写 findViewById, 我也是, 这时大家可能会去选用一些利用注解写的ViewInject 去简化这个操作, 可是… 我非常不喜欢ViewInject

这时,我就想着自己去实现一下简化findViewById,简化后怎么用呢?看下面的代码,

TextView textView = V.f(this, R.id.textView);
ImageView imageView = V.f(convertView, R.id.image);

这种方式解决了两个问题,

 1. 简化了`findViewById` 这个长长的方法。
 2. 没有了会增加代码长度的类型转化。 

那我们应该怎么去实现这两个V.f 方法呢?其实很简单。

/** * view utils * @author loader * */
public class V {

    /** * activity.findViewById() * @param context * @param id * @return */
    public static <T extends View> T f(Activity context, int id) {
        return (T) context.findViewById(id);
    }

    /** * rootView.findViewById() * @param rootView * @param id * @return */
    public static <T extends View> T f(View rootView, int id) {
        return (T) rootView.findViewById(id);
    }
}

仅仅一行代码就搞定了,这里我们正是利用了java泛型方法的类型推导特点。

ok, 这篇博客就这么简单。大家copy代码尽情玩耍吧。

你可能感兴趣的:(textview)