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

我在HomePageActivity上也有RecyclerView,它是根据click事件填充的。

这是这两个活动的代码片段-

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


还有来自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()以获得在其他活动中设置的附加功能的Bundle

08-18 04:50