美文网首页
简化findViewById()

简化findViewById()

作者: 娜就是我_kn | 来源:发表于2016-07-12 16:10 被阅读0次

             对于findViewById()这个方法相信每个Android开发工程师都很熟悉,没有技术含量,但又必不可少。在开发过程中大量的findViewById()让工程师们烦不胜烦,为了减少一些代码,该文运用Java的泛型简化这个方法。

    public static T findView(Activity context, int id) {

                                    try {

                                                      return (T) context.findViewById(id);

                                            } catch (ClassCastException ex) {

                                                        Log.e("", "Could not cast View to concrete class.", ex);

                                                          throw ex;

                                           }

                     }

    这个方法的使用场景是在Activity中,这个方法可以写在BaseActivity中,然后每个Activity继承自BaseActivity,这样在绑定控件的时候直接用这个方法代替findViewById(),减少繁琐的类型转换。

    public static T findView(View rootView, int id) {

                              try {

                                           return (T) rootView.findViewById(id);

                                       } catch (ClassCastException ex) {

                                              Log.e("", "Could not cast View to concrete class.", ex);

                                               throw ex;

                                     }

      }

    这个方法的使用场景是非Activity,当需要有一个根View的时候调用此方法来代替findViewById()。

        当然还有很多方式可以减少findViewById()的书写,例如注解,Android Studio插件Android Butterknife Zelezny等等,这些方式各有利弊,读者可自行选择。特别提示:使用注解会影响性能。详情请自行查阅。

    相关文章

      网友评论

          本文标题:简化findViewById()

          本文链接:https://www.haomeiwen.com/subject/sgfsjttx.html