我是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
。