From 55590bb4b635e083016e4b1c7a71a3ea75f1419a Mon Sep 17 00:00:00 2001 From: hmkcode Date: Wed, 2 Oct 2013 21:57:59 +0300 Subject: [PATCH] navigation-drawer updated navigation-drawer updated --- .../src/com/hmkcode/android/MainActivity.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/android-navigation-drawer/src/com/hmkcode/android/MainActivity.java b/android-navigation-drawer/src/com/hmkcode/android/MainActivity.java index 7b51be8..cd1db3f 100644 --- a/android-navigation-drawer/src/com/hmkcode/android/MainActivity.java +++ b/android-navigation-drawer/src/com/hmkcode/android/MainActivity.java @@ -12,13 +12,15 @@ import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; +import android.widget.TextView; +import android.widget.Toast; public class MainActivity extends Activity { private String[] drawerListViewItems; private DrawerLayout drawerLayout; private ListView drawerListView; - private ActionBarDrawerToggle mDrawerToggle; + private ActionBarDrawerToggle actionBarDrawerToggle; @Override @@ -35,10 +37,11 @@ public class MainActivity extends Activity { drawerListView.setAdapter(new ArrayAdapter(this, R.layout.drawer_listview_item, drawerListViewItems)); - // App Icon + // 2. App Icon drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - mDrawerToggle = new ActionBarDrawerToggle( + // 2.1 create ActionBarDrawerToggle + actionBarDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ drawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */ @@ -46,30 +49,54 @@ public class MainActivity extends Activity { R.string.drawer_close /* "close drawer" description */ ); - // Set the drawer toggle as the DrawerListener - drawerLayout.setDrawerListener(mDrawerToggle); + // 2.2 Set actionBarDrawerToggle as the DrawerListener + drawerLayout.setDrawerListener(actionBarDrawerToggle); + // 2.3 enable and show "up" arrow getActionBar().setDisplayHomeAsUpEnabled(true); + // just styling option drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); + + drawerListView.setOnItemClickListener(new DrawerItemClickListener()); } + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + // Sync the toggle state after onRestoreInstanceState has occurred. + actionBarDrawerToggle.syncState(); + } + @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); - mDrawerToggle.onConfigurationChanged(newConfig); + actionBarDrawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onOptionsItemSelected(MenuItem item) { - // TODO Auto-generated method stub - if (mDrawerToggle.onOptionsItemSelected(item)) { + + // call ActionBarDrawerToggle.onOptionsItemSelected(), if it returns true + // then it has handled the app icon touch event + + if (actionBarDrawerToggle.onOptionsItemSelected(item)) { return true; } return super.onOptionsItemSelected(item); } + + private class DrawerItemClickListener implements ListView.OnItemClickListener { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Toast.makeText(MainActivity.this, ((TextView)view).getText(), Toast.LENGTH_LONG).show(); + drawerLayout.closeDrawer(drawerListView); + + } + } + }