I am tyring to make a time table . In which Navigation drawer will show days and tab bar will show timing wise lunch, dinner, breakfast.
Question : How to make conditions such that we get to know about both the selected navigation drawer item and selected tab item at same time .
MessActivity.java
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mess);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
TabLayout tablayout = (TabLayout) findViewById(R.id.tabs);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
tablayout.setupWithViewPager(viewPager);
tabsPager tabsPager = new tabsPager(getSupportFragmentManager());
viewPager.setAdapter(tabsPager);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));
tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if (tab.getPosition() == 1) {
toolbar.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorAccent));
tablayout.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorAccent));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MessActivity.this,
R.color.colorAccent));
}
} else if (tab.getPosition() == 2) {
toolbar.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
android.R.color.darker_gray));
tablayout.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
android.R.color.darker_gray));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MessActivity.this,
android.R.color.darker_gray));
}
} else {
toolbar.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorPrimary));
tablayout.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorPrimary));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MessActivity.this,
R.color.colorPrimaryDark));
}
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.monday) {
} else if (id == R.id.tuesday) {
} else if (id == R.id.wednesday) {
} else if (id == R.id.thursday) {
} else if (id == R.id.friday) {
} else if (id == R.id.saturday) {
} else if (id == R.id.sunday) {
} else if (id == R.id.next) {
} else if (id == R.id.today) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
tabsPager.java
public class tabsPager extends FragmentStatePagerAdapter {
String[] titles=new String[]{"Breakfast","Lunch","Dinner"};
public tabsPager(FragmentManager fm) {
super(fm);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
BreakfastFragment breakfastFragment =new BreakfastFragment();
return breakfastFragment;
case 1: LunchFragment lunchFragment =new LunchFragment();
return lunchFragment;
case 2:
DinnerFragment dinnerFragment =new DinnerFragment();
return dinnerFragment;
}
return null;
}
@Override
public int getCount() {
return 3;
}
}
EDIT MessActivity
public class MessActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
public static int selectedNavigationMenuID= 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mess);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
TabLayout tablayout = (TabLayout) findViewById(R.id.tabs);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
tablayout.setupWithViewPager(viewPager);
tabsPager tabsPager = new tabsPager(getSupportFragmentManager());
viewPager.setAdapter(tabsPager);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tablayout));
tablayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if (tab.getPosition() == 1) {
toolbar.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorAccent));
tablayout.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorAccent));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MessActivity.this,
R.color.colorAccent));
}
} else if (tab.getPosition() == 2) {
toolbar.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
android.R.color.darker_gray));
tablayout.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
android.R.color.darker_gray));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MessActivity.this,
android.R.color.darker_gray));
}
} else {
toolbar.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorPrimary));
tablayout.setBackgroundColor(ContextCompat.getColor(MessActivity.this,
R.color.colorPrimary));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(ContextCompat.getColor(MessActivity.this,
R.color.colorPrimaryDark));
}
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
selectedNavigationMenuID=item.getItemId();
int id = item.getItemId();
if (id==R.id.next)
{
}
else if(id==R.id.today){}
else if (id == R.id.monday) { }
else if (id == R.id.tuesday) { }
else if (id == R.id.wednesday) {}
else if (id == R.id.thursday) {
} else if (id == R.id.friday) {
} else if (id == R.id.saturday) {
} else if (id == R.id.sunday) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
tabsPager
public tabsPager(FragmentManager fm) {
super(fm);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
public void set(int selectedNavigationMenuID) { MessActivity.selectedNavigationMenuID = selectedNavigationMenuID; }
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:set(MessActivity.selectedNavigationMenuID);
BreakfastFragment breakfastFragment=new BreakfastFragment();
return breakfastFragment;
case 1:set(MessActivity.selectedNavigationMenuID);
LunchFragment lunchFragment=new LunchFragment();
return lunchFragment;
case 2:set(MessActivity.selectedNavigationMenuID);
DinnerFragment dinnerFragment=new DinnerFragment();
return dinnerFragment;
}
return null;
}
@Override
public int getCount() {
return 3;
}
}
BreakFastFragment
public class BreakfastFragment extends Fragment {
public BreakfastFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inf = inflater.inflate(R.layout.fragment_breakfast, container, false);
TextView tv = (TextView) inf.findViewById(R.id.breakfast_textview_id);
if(MessActivity.selectedNavigationMenuID==0)
{
tv.setText("now");}
else if(MessActivity.selectedNavigationMenuID==1)
{
tv.setText("B_today");}
else if(MessActivity.selectedNavigationMenuID==2)
{
tv.setText("B_monday");}
else if(MessActivity.selectedNavigationMenuID==3)
{
tv.setText("B-tuesday");}
else if(MessActivity.selectedNavigationMenuID==4)
{
tv.setText("B-wednesday");}
else if(MessActivity.selectedNavigationMenuID==5)
{
tv.setText("B-thursday");}
else if(MessActivity.selectedNavigationMenuID==6)
{
tv.setText("b-friday");}
else if(MessActivity.selectedNavigationMenuID==7)
{
tv.setText("b-saturday");}
else if(MessActivity.selectedNavigationMenuID==8)
{
tv.setText("b-sunday");}
return inf;
}
}