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

以前老用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!"); 

版权声明:本文为pengyu1801原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。