码迷,mamicode.com
首页 > 移动开发 > 详细

Android fragment 获取id,findViewById为空

时间:2015-07-17 16:16:06      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:android   fragment   

     项目中需要保持标题栏,通过点击标题栏左侧的按钮,弹出下拉菜单,切换右侧的界面,所以就想到使用fragment这个类,可以很好的切换activity,不过在使用的时候还是出现了很多问题:

      1

.public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View vi = inflater.inflate(R.layout.activity_price, container,false);
}
    <span style="color:#ff0000;background-color: rgb(255, 255, 102);">上述的代码是否有错,在创建fragment的时候,这样的初始化代码我忘了写return返回值,导致程序报错,所以前往别忘了添加一个return vi;</span>
   2.在使用findViewById的时候,获取某个ID,在fragment里面获取和activity有点不一样,稍不注意,就有可能获取到的是空值null:
      以下是错误的用法:
         A.<pre style="background-color: rgb(255, 255, 255); font-family: Consolas; font-size: 13.5pt;"><span style="color: rgb(102, 14, 122); "><strong></strong></span><pre style="background-color: rgb(255, 255, 255); font-family: Consolas; font-size: 13.5pt;">AlloneHorizontalScrollView
tableHeaderView = (AlloneHorizontalScrollView) getView.findViewById(R.id.HorizontalScrollView_1);


     B。
AlloneHorizontalScrollView
tableHeaderView = (AlloneHorizontalScrollView) getActivity.findViewById(R.id.HorizontalScrollView_1);
这样的代码获取的值经测试都是为空的,正确的方法是,使用上述生成vi:

<span style="font-family:Consolas;"><span style="font-size: 18px;"><strong><span style="color:#660e7a;">     </span></strong></span></span><pre name="code" class="java"><span style="color:#660e7a;">       View vi = inflater.inflate(R.layout.activity_price, container,false);

        // 加载字体
        loadFonts();

        tableHeaderView = (AlloneHorizontalScrollView) </span><span style="color:#ff0000;background-color: rgb(255, 255, 102);">vi.</span><span style="color:#660e7a;">findViewById(R.id.HorizontalScrollView_1);
        tableDataView = (AlloneHorizontalScrollView) </span><span style="color:#ff0000;background-color: rgb(255, 255, 102);">vi.</span><span style="color:#660e7a;">findViewById(R.id.HorizontalScrollView_2);
        tableHeaderView.setScrollView(tableDataView);</span>


    希望对使用fragment的同学有一点帮助。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android fragment 获取id,findViewById为空

标签:android   fragment   

原文地址:http://blog.csdn.net/nihaoqiulinhe/article/details/46927387

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!