112 Java Android Program to Demonstrate adding actions to Navigation Bar in Android
Posted by Superadmin on February 28 2017 12:50:27

Java Android Program to Demonstrate adding actions to Navigation Bar in Android

Here is source code of the Program to Demonstrate adding actions to Navigation Bar in Android. The program is successfully compiled and run on a Windows system using Eclipse Ide. The program output is also shown below.

 

Main Activity

package com.example.nav_bar;
 
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
 
    private String[] titles;
    private DrawerLayout drawer_layout;
    private ListView drawer_content;
    private CharSequence main_title;
    private ActionBarDrawerToggle action_drawer_toggle;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        main_title = "test";
 
        titles = new String[] { "one", "two", "three" };
        drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer_content = (ListView) findViewById(R.id.left_drawer);
 
        drawer_content.setAdapter(new ArrayAdapter<String>(this,
                R.layout.drawer_list_item, titles));
 
        drawer_content.setOnItemClickListener(new DrawerItemClickListener());
 
        action_drawer_toggle = new ActionBarDrawerToggle(this, /* Main Activity */
        drawer_layout, /* DrawerLayout object */
        R.drawable.ic_drawer, /* the hamburger */
        R.string.open, /* open description */
        R.string.close /* close description */
        ) {
            /* on close drawer */
            public void onDrawerClosed(View view) {
                getActionBar().setTitle(main_title);
            }
 
            /* drawer is in a open state. */
            public void onDrawerOpened(View drawerView) {
                getActionBar().setTitle(main_title);
            }
        };
 
        drawer_layout.setDrawerListener(action_drawer_toggle);
 
        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);
 
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        action_drawer_toggle.syncState();
    }
 
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        action_drawer_toggle.onConfigurationChanged(newConfig);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (action_drawer_toggle.onOptionsItemSelected(item)) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
    private void selectItem(int position) {
        Toast.makeText(this, R.string.app_name, Toast.LENGTH_SHORT).show();
        drawer_content.setItemChecked(position, true);
        setTitle(titles[position]);
        drawer_layout.closeDrawer(drawer_content);
    }
 
    @Override
    public void setTitle(CharSequence title) {
        main_title = title;
        getActionBar().setTitle(main_title);
    }
 
    private class DrawerItemClickListener implements
            ListView.OnItemClickListener {
        @Override
        public void onItemClick(AdapterView parent, View view, int position,
                long id) {
            selectItem(position);
        }
    }
 
}

string

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">Nav_Bar</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="open">Open</string>
    <string name="close">Close</string>
 
</resources>

Activity_Main

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
 
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- navigation drawer layout -->
 
    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#111"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />
 
</android.support.v4.widget.DrawerLayout>

drawer_layout

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="New Text" />