【问题标题】:How can I open another activity with specific fragment with Navigation Component?如何使用导航组件打开具有特定片段的另一个活动?
【发布时间】:2019-06-11 10:53:38
【问题描述】:

我正在使用两个活动。一个是 MainActivity,第二个是 NFC。 MainActivity 有nav_graph.xml

读完NFC后,我想启动MainActivity并移动到MainActivity的某个片段。

我该如何实现?

【问题讨论】:

    标签: android android-activity fragment android-navigation android-architecture-navigation


    【解决方案1】:

    你可以试试这个:

    (在 MainActivity.java 中)

    public class SectionsPagerAdapter extends FragmentPagerAdapter {
            public SectionsPagerAdapter(FragmentManager fm) {
                super(fm);
            }
            @Override
            public Fragment getItem(int position) {
                switch(position) {
                    case 0:
                        Frag1 frag1 = new Frag1();//this is one activity
                            return frag1;
                    case 1:
                        Frag2 frag2 = new Frag2();
                            return frag2;
                    default:
                        return null;
                }
            }
            @Override
            public int getCount() {
                return 2; //'the number 2 is 'cause you've got a two activities
            }
        }
    

    如果你想打开另一个带有浮动操作按钮的活动,你可以试试这个:

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
            mViewPager = (ViewPager) findViewById(R.id.container);
            mViewPager.setAdapter(mSectionsPagerAdapter);
            TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
            FloatingActionButton fab = (FloatingActionButton)findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(mViewPager.getCurrentItem()==0){
                        Fragment1();
                        Toast.makeText(MainActivity.this, "Example 1", Toast.LENGTH_SHORT).show();
                    }else if(mViewPager.getCurrentItem()==1){
                        Fragmen2();
                        Toast.makeText(MainActivity.this, "Example 2", Toast.LENGTH_SHORT).show();
                    }
                }
            });
            mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
            tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
        }
        public void Fragment1(){//Call to the activity Example1
            Intent fragment0 = new Intent(getApplicationContext(), example1.class);
            startActivity(fragment0);
            onResume();
        }
        public void Fragmen2(){ //Call to the activity Example2
            Intent fragment1 = new Intent(getApplicationContext(), example2.class);
            startActivity(fragment1);
            onResume();
        }
    

    【讨论】:

    • 你确定是导航组件吗?
    • 是的,其实我就是用这个方法
    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 2021-11-24
    • 2020-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    相关资源
    最近更新 更多