Здравствуйте, в приведенном ниже упражнении у меня есть нижний элемент навигации, названный как возможность. Когда я нажимаю на возможность, хочу вызвать TabLayout содержит две вкладки с именами в качестве стадии продаж и необходимой поддержки.
Из действия, не вызывающего моего фрагменты.
Может ли кто-нибудь мне помочь
Активность. java:
public class MainActivity extends AppCompatActivity {
private DrawerLayout drawerLayout;
private Toolbar toolbar;
private RecyclerView recyclerView;
private RecyclerView.Adapter mAdapter;
private ProgressDialog progressDialog = null;
String sessionId;
private ViewPager viewPager;
MenuItem refreshMenuItem;
TabLayout tabLayout;
Fragment fragment;
private RecyclerView.LayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sessionId = getIntent().getStringExtra("sessionId");
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Home");
loadFragment(new TaskFragement());
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
recyclerView.setHasFixedSize(true);
// use a linear layout manager
// layoutManager = new LinearLayoutManager(this);
//recyclerView.setLayoutManager(layoutManager);
//recyclerView.setAdapter(mAdapter);
initNavigationDrawer();
initBottomNavigationItems();
}
public void initNavigationDrawer() {
NavigationView navigationView = (NavigationView)findViewById(R.id.navigation_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
int id = menuItem.getItemId();
switch (id){
case R.id.home:
Toast.makeText(getApplicationContext(),"Home",Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawers();
break;
case R.id.settings:
Toast.makeText(getApplicationContext(),"Settings",Toast.LENGTH_SHORT).show();
break;
case R.id.trash:
Toast.makeText(getApplicationContext(),"History",Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawers();
break;
case R.id.logout:
finish();
}
return true;
}
});
View header = navigationView.getHeaderView(0);
TextView tv_email = (TextView)header.findViewById(R.id.tv_email);
tv_email.setText("GenWorks Solutions");
drawerLayout = (DrawerLayout)findViewById(R.id.drawer);
ActionBarDrawerToggle actionBarDrawerToggle = new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.drawer_open,R.string.drawer_close){
@Override
public void onDrawerClosed(View v){
super.onDrawerClosed(v);
}
@Override
public void onDrawerOpened(View v) {
super.onDrawerOpened(v);
}
};
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
}
public void initBottomNavigationItems() {
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.task:
toolbar.setTitle("Task");
fragment = new TaskFragement();
loadFragment(fragment);
return true;
case R.id.account:
toolbar.setTitle("Account");
fragment = new AccountFragement();
sessionId = getIntent().getStringExtra("sessionId");
loadFragment(fragment);
return true;
case R.id.contact:
toolbar.setTitle("Contact");
fragment = new ContactFragment();
loadFragment(fragment);
return true;
case R.id.opportunity:
toolbar.setTitle("Opportunity");
tabLayout.setVisibility(View.VISIBLE);
viewPager.setVisibility(View.VISIBLE);
return true;
}
return false;
}
});
}
private void loadFragment(Fragment fragment) {
// load fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_container, fragment);
transaction.addToBackStack(null);
transaction.commit();
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(),getApplicationContext());
adapter.addFragment(new SalesStageFragment(), "Sales Stage");
adapter.addFragment(new SupportFragment(), "Support Required");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager, Context applicationContext) {
super(manager);
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return new SalesStageFragment();
} else if (position == 1) {
return new SupportFragment();
}
return new SalesStageFragment();
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
SalesStageFragment. java:
public class SalesStageFragment extends Fragment {
private String title;
private int page;
public SalesStageFragment(){
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Opportunities List");
View rootView = inflater.inflate(R.layout.opportunity, container, false);
SupportFragment. java:
public class SupportFragment extends Fragment {
private String title;
private int page;
public SalesStageFragment(){
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
((AppCompatActivity) getActivity()).getSupportActionBar().setTitle("Opportunities List");
View rootView = inflater.inflate(R.layout.support, container, false);