Java tutorial
/* * The MIT License (MIT) * * Copyright (c) 2016 Sergey * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package yalantis.ua.econtactapp; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.support.design.widget.NavigationView; import android.support.design.widget.TabLayout; import android.support.v4.view.GravityCompat; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.text.method.LinkMovementMethod; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import butterknife.Bind; import butterknife.ButterKnife; import yalantis.ua.econtactapp.customviews.CustomTabLayout; import yalantis.ua.econtactapp.tabs.PagerAdapter; public class MainActivity extends ActionBarActivity { @Bind(R.id.drover_layout) DrawerLayout drawerLayout; @Bind(R.id.drawer_navigation_view) NavigationView navigationView; @Bind(R.id.drawer_links) TextView drawerLinks; @Bind(R.id.app_bar) Toolbar toolbar; @Bind(R.id.pager) ViewPager pager; @Bind(R.id.tabs) CustomTabLayout tabs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); initToolbar(); initNavigationDrawer(); setupTab(); } private void setupTab() { final PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager()); tabs.setTabsFromPagerAdapter(pagerAdapter); tabs.getTabAt(0).setText(R.string.in_progress); tabs.getTabAt(1).setText(R.string.completed); tabs.getTabAt(2).setText(R.string.waiting); tabs.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { pager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }); pager.setAdapter(pagerAdapter); pager.addOnPageChangeListener(new CustomTabLayout.TabLayoutOnPageChangeListener(tabs)); } private void initToolbar() { setSupportActionBar(toolbar); ActionBar supportActionBar = getSupportActionBar(); if (supportActionBar != null) { supportActionBar.setHomeAsUpIndicator(R.drawable.ic_menu); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } } private void initNavigationDrawer() { drawerLinks.setMovementMethod(LinkMovementMethod.getInstance()); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(MenuItem item) { drawerLayout.closeDrawers(); return true; } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { case R.id.navigate: //startActivity(new Intent(this, SubActivity.class)); return true; case android.R.id.home: drawerLayout.openDrawer(GravityCompat.START); return true; } return super.onOptionsItemSelected(item); } }