1

我是新来的android和我卡在我正在工作的应用程序的特定部分。问题是 - 我想导航到HomePageActivity当我执行onClickListener事件createEvent按钮在我的SecondActivity第二个选项卡。我试着在这里和其他网站上使用各种线程的解决方案,但我仍然无法让我的代码运行。从第二个活动开始的第一个活动的第二个标签片段

我也有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; 
     } 
    } 
} 
} 

而且从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); 
      } 
     }); 

任何帮助表示赞赏。先谢谢你。

回答

0

您可以致电getActivity().getIntent().getExtras()以获得您在其他活动中设置的Bundle附加费用。

+0

我尝试了意图,但我关心的主要问题是,我将如何打开具有意图信息的特定片段**,即在PlaceHolderFragment中。 –

+0

类似于'fragment.setArguments(getIntent()。getExtras());'? –

+0

我试过了你的建议,但它使信息显示在所有三个标签片段上而不是一个,它仍然在clickEvent之后打开第一个标签。 –

相关问题