java - 从第二个 Activity 启动第一个 Activity 的第二个选项卡 fragment

标签 java android android-fragments android-recyclerview fragmentpageradapter

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

我还在 HomePageActivity 上有 RecyclerView,它将根据点击事件进行填充。

这是两个 Activity 的代码 fragment -

HomePageActivity.java - 选项卡式 Activity

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;
        }
    }
}
}

以及SecondActivity中的代码 -

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() 来获取您在其他 Activity 中设置的附加内容的 Bundle

关于java - 从第二个 Activity 启动第一个 Activity 的第二个选项卡 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701042/

相关文章:

安卓喷气背包 : lifecycle-aware recurrent periodic task execution with LiveData and ViewModels

android - RTMP 对比 HLS 对比 HDS

android - Textview 在 setRetainInstance 中不起作用

android - 如何使用单个可聚焦 View 清除 fragment 中的焦点?

java - 如何将数据库中的图片加载到ListView中?

java - 取消以前的请求服务器端

java - 安卓工作室 : debug application on device

安卓 Maven : LifecycleExecutionException

android - 如何从一个 Activity 中的 fragment 导航到另一个 Activity 中的 fragment ?

java - 如何在连接到 Mongo 存储库的 Java/Spring Controller 上抛出异常?