Java 从第二个活动开始第一个活动的第二个选项卡片段

Java 从第二个活动开始第一个活动的第二个选项卡片段,java,android,android-fragments,android-recyclerview,fragmentpageradapter,Java,Android,Android Fragments,Android Recyclerview,Fragmentpageradapter,我是android新手,我被困在我正在开发的应用程序的特定部分。问题是-当我在我的SecondActivity中的createEvent按钮上执行onClickListener事件时,我想导航到HomePageActivity的第二个选项卡。我尝试在这里和其他网站上使用不同线程的解决方案,但仍然无法运行代码 我还有HomePageActivity上的RecyclerView,它将根据单击事件填充 以下是两个活动的代码片段- HomePageActivity.java-选项卡式活动 public

我是android新手,我被困在我正在开发的应用程序的特定部分。问题是-当我在我的SecondActivity中的createEvent按钮上执行onClickListener事件时,我想导航到HomePageActivity的第二个选项卡。我尝试在这里和其他网站上使用不同线程的解决方案,但仍然无法运行代码

我还有HomePageActivity上的RecyclerView,它将根据单击事件填充

以下是两个活动的代码片段-

HomePageActivity.java-选项卡式活动

public class HomePageActivity extends AppCompatActivity
{
 protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_page);

        fragmentInfo = getIntent().getExtras();
        if (fragmentInfo != null)
        {
            tabNumber = fragmentInfo.getInt("tabNumber");
        }
        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);
        tabLayout.setupWithViewPager(mViewPager);
    }

public class SectionsPagerAdapter extends android.support.v4.app.FragmentPagerAdapter
    {
        String[] tabList = {"Communities", "Events", "People"};

        public SectionsPagerAdapter(android.support.v4.app.FragmentManager fm)
        {
            super(fm);
        }

        @Override
        public android.support.v4.app.Fragment getItem(int position)
        {
            return PlaceholderFragment.newInstance(position + 1);
        }

        @Override
        public int getCount()
        {
            return tabList.length;
        }

        @Override
        public CharSequence getPageTitle(int position)
        {
            return tabList[position];
        }
    }
public static class PlaceholderFragment extends android.support.v4.app.Fragment
{
    private static final String ARG_SECTION_NUMBER = "section_number";

    public static PlaceholderFragment newInstance(int sectionNumber)
    {
        PlaceholderFragment fragment = new PlaceholderFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
    }

    public PlaceholderFragment()
    {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
    {
        int viewNumber = getArguments().getInt(ARG_SECTION_NUMBER);
        final String[] eventsListArray = {"Event1", "Event2"};

        if (viewNumber == 1)
        {
            View rootView = inflater.inflate(R.layout.fragment_communities, container, false);
            TextView textView = (TextView) rootView.findViewById(R.id.communitieslabel);
            textView.setText("communities");
            return rootView;
        }
        else if (viewNumber == 2)
        {
            View rootView = inflater.inflate(R.layout.fragment_events, container, false);
            eventsList = (RecyclerView) rootView.findViewById(R.id.recyclerViewEvents);
            fab = (FloatingActionButton) rootView.findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener()
            {
                @Override
                public void onClick(View view)
                {
                    Intent intent = new Intent(getActivity().getBaseContext(), CreateEvents.class);
                    startActivity(intent);
                }
            });

            eventsList.setHasFixedSize(true);
            mLayoutManager = new LinearLayoutManager(getActivity());
            eventsList.setLayoutManager(mLayoutManager);
            eventsListAdapter = new RecyclerEventsAdapter(getActivity(), eventListInfo);
            eventsList.setAdapter(eventsListAdapter);
            return rootView;
        }
        else
        {
            View rootView = inflater.inflate(R.layout.fragment_peopleprofile, container, false);
            TextView textView = (TextView) rootView.findViewById(R.id.peoplelabel);
            textView.setText("people");
            return rootView;
        }
    }
}
}
以及第二个活动中的代码

buttonCreateEvent.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                String[] eventInfo = new String[0];
                getEventName = editTextEventName.getText().toString();
                getEventDetail = editTextEventDetails.getText().toString();
                getEventLocation = editTextEventLocation.getText().toString();
                while (!getEventName.equals("") && !getEventDetail.equals("") && !getEventLocation.equals("") && !getEventDate.equals(""))
                {
                    eventInfo = new String[]{getEventName, getEventDetail, getEventLocation, getEventDate};
                }
                Intent intent = new Intent(CreateEvents.this, HomePageActivity.class);
                intent.putExtra("tabNumber", 2);
                intent.putExtra("openEventFragment", eventInfo);
                startActivity(intent);
            }
        });

感谢您的帮助。提前谢谢。

你可以调用
getActivity().getIntent().getExtras()
来获取你在其他活动中设置的额外设置的
包。

你可以调用
getActivity().getIntent().getExtras()
来获取你在其他活动中设置的额外设置的
包。

我尝试获取意图,但我关心的主要问题是,如何使用意图信息打开特定片段,即在占位符片段中?我尝试了你的建议,但它使信息显示在所有三个选项卡式片段上,而不是一个,并且它仍然在clickEvent后打开第一个选项卡。我尝试获取意图,但我关心的主要问题是如何使用意图信息打开特定片段,即。,类似于
fragment.setArguments(getIntent().getExtras())?我尝试了您的建议,但它使信息显示在所有三个选项卡片段上,而不是一个,并且它仍然在clickEvent之后打开第一个选项卡。