Android fragment 获取id,findViewById为空

项目中需要保持标题栏,通过点击标题栏左侧的按钮,弹出下拉菜单,切换右侧的界面,所以就想到使用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的同学有一点帮助。

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

时间: 2024-07-30 23:39:21

Android fragment 获取id,findViewById为空的相关文章

Android安卓获取ID号,本机号码,手机型号,系统版本

Mark一下 public void Msg1(String str) { Toast toast = new Toast(this); Toast toast1 = toast.makeText(this, str, Toast.LENGTH_LONG); toast1.show(); } //获取ID号 final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPH

android 自定义view中findViewById为空的解决办法

网上说的都是在super(context, attrs);构造函数这里少加了一个字段, 其实根本不只这一个原因,属于view生命周期的应该知道,如果你在 自定义view的构造函数里面调用findViewById 铁定为空的,因为这个 时候view还在初始化阶段,还没有添加到activity的XML布局上,所以 你怎么调用都是没用的,解决办法就是把我们的findViewById方法换 一个生命周期上面调用就OK了,比如我就是在 protected void onAttachedToWindow()

Android版本:使用findViewById()用字符串/在一个循环

我在做一个Android应用程序,其中有一个数百按钮,每一个特定的回调.现在,我想设置,而不必写几百行代码(用于按钮各一个)这一个循环. 我的问题是:如何才能findViewById不具有静态在键入每个按钮的id? 以下是我想要做的: for(int i=0; i<some_value; i++) { for(int j=0; j<some_other_value; j++) { String buttonID = "btn" + i + "-" + j

android robotium获取相同id的的控件

android robotium获取相同id的的控件:http://blog.csdn.net/busjb/article/details/16808551 robotium中同一id的怎么确定点击哪一个:http://zhidao.baidu.com/link?url=QMTQ86nIqfGS8l1xkiytlIguSnG3UZC-C77q3qoGTfOc4AlzJNqVobbfYtfElhFEaEXfnmfla3spwC9snUfAeZGJykAlWLIDHfvTjuimXPG androi

Android Fragment应用实战,使用碎片向ActivityGroup说再见

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/13171191 现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别棒的应用技巧. 很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不

Android Fragment 完全解析

参考文章:http://blog.csdn.net/guolin_blog/article/details/8881711 http://blog.csdn.net/guolin_blog/article/details/13171191 Android Fragment应用实战,使用碎片向ActivityGroup说再见 界面如下: 实现步骤: 程序结构: 编写主界面的xml文件 <?xml version="1.0" encoding="utf-8"?&g

Android Fragment应用实战

现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能充分利用的问题,但现在即使只是在手机上,也有很多的场景可以运用到Fragment了,今天我们就来学习其中一个特别棒的应用技巧. 很多手机应用都会有一个非常类似的功能,即屏幕的下方显示一行Tab标签选项,点击不同的标签就可以切换到不同的界面,如以下几个应用所示:          上面三个应用从左到右分别是QQ.新浪微博和支付宝钱包,可见,

Android Fragment 真正的完全解析(上)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务:以及Fragment的一些特

Android Fragment 的使用,一些你不可不知的注意事项

Fragment,俗称碎片,自 Android 3.0 开始被引进并大量使用.然而就是这样耳熟能详的一个东西,在开发中我们还是会遇见各种各样的问题,层出不穷.所以,是时候总结一波了. Fragment 简介 作为 Activity 界面的一部分,Fragment 的存在必须依附于 Activity,并且与 Activity 一样,拥有自己的生命周期,同时处理用户的交互动作.同一个 Activity 可以有一个或多个 Fragment 作为界面内容,并且可以动态添加.删除 Fragment,灵活控