Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道用户正在查看哪个片段?_Android - Fatal编程技术网

Android 如何知道用户正在查看哪个片段?

Android 如何知道用户正在查看哪个片段?,android,Android,我已经使用ViewPager创建了一个表格布局。我有四个碎片 private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new AdminFragment(), "Admin Posts"); adapter.addFragment(n

我已经使用ViewPager创建了一个表格布局。我有四个碎片

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new AdminFragment(), "Admin Posts");
    adapter.addFragment(new MemberFragment(), "Member Posts");
    adapter.addFragment(new JoinFragment(), "Our Members");
    adapter.addFragment(new WebFragment(), "Our Website");
    viewPager.setAdapter(adapter);
}
如何从父活动中知道用户所在的片段

public class AdminFragment extends Fragment{

    public AdminFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_admin, container, false);
    }

}

您可以添加
addOnPageChangeListener
以了解页面何时更改,并使用
onPageSelected
了解用户当前正在选择的页面


如果您需要知道在某些特定事件上没有页面更改,可以使用
viewPager.getCurrentItem()
来知道选择了哪个页面。

在父活动中执行此操作

MyFragment myFragment = (MyFragment)getFragmentManager().findFragmentByTag("Admin Posts");
if (myFragment != null && myFragment.isVisible()) {
// add your code here
}

始终可以使用viewPager.getCurrentItem()获取当前查看项目的索引。。。我希望这有帮助。

此方法将返回当前正在查看的片段用户的名称

 public String returnCurrentFragmentName(){  

     int position = viewPager.getCurrentItem();

    switch (position) {
                case 0:
    //fragment is
                    return "AdminFragment";
                case 1:
    //fragment is
                   return "MemberFragment";
                case 2:
    //fragment is
                    return "JoinFragment";
                case 3:
    //fragment is
                    return "WebFragment";
                default:
                    return null;
    }
祝您好运。

从适配器重写getItem(),并返回片段。