navigation-drawer updated

navigation-drawer updated
master
hmkcode 12 years ago
parent 579c07c36d
commit 55590bb4b6

@ -12,13 +12,15 @@ import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.ListView; import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity { public class MainActivity extends Activity {
private String[] drawerListViewItems; private String[] drawerListViewItems;
private DrawerLayout drawerLayout; private DrawerLayout drawerLayout;
private ListView drawerListView; private ListView drawerListView;
private ActionBarDrawerToggle mDrawerToggle; private ActionBarDrawerToggle actionBarDrawerToggle;
@Override @Override
@ -35,10 +37,11 @@ public class MainActivity extends Activity {
drawerListView.setAdapter(new ArrayAdapter<String>(this, drawerListView.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_listview_item, drawerListViewItems)); R.layout.drawer_listview_item, drawerListViewItems));
// App Icon // 2. App Icon
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle( // 2.1 create ActionBarDrawerToggle
actionBarDrawerToggle = new ActionBarDrawerToggle(
this, /* host Activity */ this, /* host Activity */
drawerLayout, /* DrawerLayout object */ drawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */ 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 */ R.string.drawer_close /* "close drawer" description */
); );
// Set the drawer toggle as the DrawerListener // 2.2 Set actionBarDrawerToggle as the DrawerListener
drawerLayout.setDrawerListener(mDrawerToggle); drawerLayout.setDrawerListener(actionBarDrawerToggle);
// 2.3 enable and show "up" arrow
getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true);
// just styling option
drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); 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 @Override
public void onConfigurationChanged(Configuration newConfig) { public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig); actionBarDrawerToggle.onConfigurationChanged(newConfig);
} }
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { 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 true;
} }
return super.onOptionsItemSelected(item); 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);
}
}
} }

Loading…
Cancel
Save