现在iam在活动中有一个视图寻呼机。 ViewPager有两个片段。现在我想在刷卡时重新加载片段,或者使用objViewPager.setcurrentitem(0)或objViewPager.setcurrentitem(0)从一个片段移动到另一个片段。请帮助...我想要的是我想刷新第二个或第一个片段,同时分别从第一个到第二个或第二个到第一个片段。我已经经历了很多搜索但是所有人都告诉片段通信但不在视图寻呼机内.....请建议我的想法。
答案 0 :(得分:0)
您可以尝试使用OnPageChangeListener。
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
if (i == 2)
// do your stuff
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
或者你可以在onResume()中刷新你的片段; 因此,每次更改回来时,都会调用onResume。
答案 1 :(得分:0)
从用户滑动的问题中你想要在片段中进行更改的问题我可以理解吗?基本上你可以在活动中创建一个接口并在fragment中实现它。在ViewPager.setOnPageChangeListener中调用这个接口。(建议上面的答案)。
像这样的东西。在活动中,
public interface FragmentInterface{
void Fragmentbecamevisible();
}
并在ViewPager.setOnPageChangeListener
中调用该函数mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
//do the setselectednavigationitem
FragmentInterface frag=(FragmentInterface)mAdapter.instantiateItem(viewPager, arg0);
if(frag!=null)
{
frag.Fragmentbecamevisible();
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
因此,每次切换片段或发生滑动功能时都会调用接口函数。 在片段中只实现接口,并在Fragmentbecamevisible()函数中,进行要刷新片段的所有更改。
public class Statistics_Fragment extends Fragment implements FragmentInterface
{
@Override
public void Fragmentbecamevisible() {
// TODO Auto-generated method stub
//Make changes to your fragment.Each time the user navigates to this fragment .thhis function gets called
}
希望这会有所帮助。 随意进行更改。