Android通过泛型简化findViewById类型转换

来源:互联网 发布:淘宝综合排名规则 编辑:程序博客网 时间:2024/05/29 11:04

以前老用findViewById,每次使用还得add cast一下今天看到一个视频(根据视频中使用的IDE推断,应该是几年前的视频了..),使用了一个方法,可以不用每次使用findViewById都去add cast.

我根据视频中的写法进行优化,具体做法:

创建一个BaseActivity,让它继承Activity,在其中添加如下方法:

//         因为是findView所以泛型类型应该继承View      protected <T extends View> T genericFindViewById(int id) {          //return返回view时,加上泛型T          return (T) findViewById(id);      }  

之后将所用到的Activity都继承BaseACtivity,然后直接使用genericFindViewById来代替findViewById即可.

例如:
Text rl_guide = genericFindViewById(R.id.rl_guide);

private EditText editor;  editor = genericFindViewById(R.id.p_name);  editor.setText("Hello World!"); 
0 0