使用ActionBar时,findViewById在onTabSelected函数中返回null

时间:2013-06-08 08:00:18

标签: android

我在工作中使用ActionBar.TabListener。有4个选项卡,每个选项卡都有自己的片段。当我想通过OnTabSelected函数更改选项卡时,我尝试在片段中找到用于动态添加表格的tablelayout。但它返回null除外。在这里搜索了很多文章后,我认为原因是我在旧的片段布局中找到了id。应该等待当前片段准备好了。 (比如onFinishinflate()?)谁能告诉我怎么弄清楚?非常感谢!

这是我的代码

public void onTabSelected(ActionBar.Tab tab,FragmentTransaction fragmentTransaction{
       mViewPager.setCurrentItem(tab.getPosition()); 
       if (tab.getPosition() == 0){
              TableLayout table = (TableLayout) this.findViewById(R.id.TableLayout1);
       }
}

1 个答案:

答案 0 :(得分:1)

而不是使用

this.findViewById

使用

getActivity().findViewById

或创建一个在开头存储Context的变量:

Context context = this;

然后使用

context.findViewById