不需要ViewInject,简化你的findViewById
Posted 亓斌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不需要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代码尽情玩耍吧。
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于不需要ViewInject,简化你的findViewById的主要内容,如果未能解决你的问题,请参考以下文章