在Android中获取片段上下文
我的活动有5个片段。我想访问片段的一个上下文,但当我使用在Android中获取片段上下文,android,fragment,Android,Fragment,我的活动有5个片段。我想访问片段的一个上下文,但当我使用getActivity()方法访问上下文时,我的代码对每个片段都有效。如何专门化每个片段上下文?(我的意思是只触及片段上下文) 如果查看适配器类,SampleFragmentPagerAdapter,您会发现您将返回一个新的PageFragment五次: @Override public Fragment getItem(int position) { return PageFragment.newInstance(position
getActivity()
方法访问上下文时,我的代码对每个片段都有效。如何专门化每个片段上下文?(我的意思是只触及片段上下文)
如果查看适配器类,
SampleFragmentPagerAdapter
,您会发现您将返回一个新的PageFragment
五次:
@Override
public Fragment getItem(int position) {
return PageFragment.newInstance(position + 1);
}
如果您查看有关的文档,它会指出:
返回与指定位置关联的片段
因此,您将创建五个列表
如果您想为每个页面创建单独的片段,可以使用开关
语句:
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return PageFragment.newInstance(position + 1);
break;
case 1:
return PageFragment1.newInstance(position + 1);
break;
case 2:
return PageFragment2.newInstance(position + 1);
break;
//etc...
}
}
好吧,如果我得到了你想要的,你想要访问每个片段,能够修改它的内容等等,对吗 首先,在您的
活动中
(哪一个包含fragments pager…),您必须稳定页面,才能访问它们,如下所示:
FirstFragment mFirstFragment;
SecondFragment mSecondFragment;
.
.
.
因此,在活动的onCreate()方法中执行以下操作:
mFirstFragment = (FirstFragment) adapter.instantiateItem(pager,0);
mSecondFragment = (SecondFragment) adapter.instantiateItem(pager, 1);
请注意,pager
是ViewPager
,adapter
是您的FragmentPagerAdapter
为什么它有用
这是因为现在您可以分别在每个片段中更改视图,例如:
mSecondFragment.mButton.setVisibility(view.VISIBLE);
或
例如,假设第一个片段中有一个按钮mButton
,第二个片段中有一个TextView mTextView1
很难理解你的意思。我想我以前从未遇到过这个问题,我经常使用Fragment
s。您的活动是否同时附加了多个片段?对不起,我的英语是,我使用fragmentpageradapter(制表符-查看页面),我在一个活动中有5个片段。当我为第一个片段设置listview时,它应用了所有这些片段(因为对于上下文,我使用getActivity方法)。我该如何处理它呢?片段没有自己的上下文,它们都使用活动上下文来表示它们所在的活动。听起来,无论你想要实现什么,你都需要使用不同的方法。谢谢你的澄清。你正在膨胀的五个片段是同一个类吗?问题是:为什么?为什么每个片段都需要特定的上下文?我不确定你是否理解上下文的含义?非常感谢PPartisan@Bad0没问题。如果我的回答解决了您的问题,请接受/投票:
mSecondFragment.mButton.setVisibility(view.VISIBLE);
mFirstFragment.mTextView1.setText("hello, its my second fragment's textview");