Привет! Я хочу включить свой навигационный ящик во все действия. Я использую библиотеку SlidingRootNav (Navigation Drawer) в своем приложении.
Вот ссылка и документация на библиотеку, которую я использую в своем приложении https://github.com/yarolegovich/SlidingRootNav
Моя основная активность.
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
//Splash Screen Time Out
private static final int SPLASH_SCREEN_TIME = 500;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Call Splash Screen Handler
splashHandler();
}
//Handler For Splash Screen
public void splashHandler()
{
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent splashScreenIntent = new Intent(MainActivity.this,HomeActivity.class);
startActivity(splashScreenIntent);
finish();
}
},SPLASH_SCREEN_TIME);
}
}
Домашняя активность (которая содержит мой Навигационный ящик.
//All Imports
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import com.yarolegovich.slidingrootnav.SlideGravity;
import com.yarolegovich.slidingrootnav.SlidingRootNav;
import com.yarolegovich.slidingrootnav.SlidingRootNavBuilder;
//Imports For SlidingRootNav
public class HomeActivity extends AppCompatActivity implements AlertDialog.OnClickListener{
//Sliding Root Nav Builder And Layout Controller
SlidingRootNavBuilder slidingRootNavBuilder;
SlidingRootNav slidingRootNavLayout;
//AlertDialogBox
AlertDialog.Builder alertDialogBox;
Toolbar toolBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
//Toolbar Settings
toolBar = findViewById(R.id.toolbar);
setSupportActionBar(toolBar);
//Injecting Navigation Drawer
slidingRootNavBuilder = new SlidingRootNavBuilder(this)
.withToolbarMenuToggle(toolBar)
.withMenuLayout(R.layout.navigation_menu).withMenuOpened(false)
.withGravity(SlideGravity.LEFT)
.withSavedState(savedInstanceState);
//Injecting Navigation With Layout
slidingRootNavLayout = slidingRootNavBuilder.inject();
//Call Naviagational Liustener
setNavigationListener();
}
//Navigational Item Listener
public void setNavigationListener()
{
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId())
{
//Home
case R.id.homeMenuItem:
// Intent homeIntent = new Intent(HomeActivity,HomeActivity.class);
// startActivity(homeIntent);
break;
// Account
case R.id.account:
//TODO : Write Intent Constructors For All Cases.
Intent accountIntent = new Intent(HomeActivity.this,AccountActivity.class);
startActivity(accountIntent);
break;
// DashBoard
case R.id.dashboard:
//TODO : Write Intent Constructors For All Cases.
break;
// Settings
case R.id.settings:
Intent settingsIntent = new Intent(HomeActivity.this,SettingsActivity.class);
startActivity(settingsIntent);
break;
// Logout
case R.id.logout:
showDialogBox(HomeActivity.this);
break;
}
return false;
}
});
}
//Close Navingation Drawer When Layout(activity_home) is clicked.
public void closeNavigationMenu(View view)
{
//Close Menu OnClick of Layout
slidingRootNavLayout.closeMenu(true);
}
//Show Dialog Box Method
public void showDialogBox(Context context)
{
//ComponentName componentName = getCallingActivity();
alertDialogBox = new AlertDialog.Builder(context);
alertDialogBox.setTitle("Logout");
alertDialogBox.setMessage("Do you wantto LOGOUT from App");
alertDialogBox.setPositiveButton("OK",this);
alertDialogBox.setNegativeButton("Cancel",this);
alertDialogBox.setCancelable(false);
alertDialogBox.create().show();
}
//DialogBox onClick Method
@Override
public void onClick(DialogInterface dialogInterface, int i) {
switch (i)
{
//BUTTON_POSITIVE
case -1:
finish();
break;
}
}
}
Меню навигации.
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/navigation_menu_drawer_layout"
android:layout_height="match_parent">
<!--Navigation View-->
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="@color/colorPureWhite"
app:headerLayout="@layout/navigation_menu_header"
app:menu="@menu/navigation_menu_items">
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
Настройка активности (я имею в виду второе действие).
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
}