Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F98937875
DrawerActivity.java
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Jan 17, 21:32
Size
7 KB
Mime Type
text/x-java
Expires
Sun, Jan 19, 21:32 (2 d)
Engine
blob
Format
Raw Data
Handle
23669003
Attached To
R3229 Genome Privacy - SHCS App
DrawerActivity.java
View Options
package
ch.epfl.pharma
;
import
java.util.ArrayList
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.content.res.Configuration
;
import
android.content.res.TypedArray
;
import
android.os.Bundle
;
import
android.support.v4.app.ActionBarDrawerToggle
;
import
android.support.v4.widget.DrawerLayout
;
import
android.util.Log
;
import
android.view.Menu
;
import
android.view.MenuItem
;
import
android.view.View
;
import
android.widget.AdapterView
;
import
android.widget.ListView
;
import
ch.epfl.pharma.drawer.adapter.NavDrawerListAdapter
;
import
ch.epfl.pharma.drawer.model.NavDrawerItem
;
public
class
DrawerActivity
extends
Activity
{
private
DrawerLayout
mDrawerLayout
;
private
ListView
mDrawerList
;
private
ActionBarDrawerToggle
mDrawerToggle
;
// nav drawer title
private
CharSequence
mDrawerTitle
;
// used to store app title
private
CharSequence
mTitle
;
// slide menu items
private
String
[]
navMenuTitles
;
private
TypedArray
navMenuIcons
;
private
ArrayList
<
NavDrawerItem
>
navDrawerItems
;
private
NavDrawerListAdapter
adapter
;
protected
void
onCreate
(
Bundle
savedInstanceState
,
int
resLayoutID
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
resLayoutID
);
mTitle
=
mDrawerTitle
=
getTitle
();
// load slide menu items
navMenuTitles
=
getResources
().
getStringArray
(
R
.
array
.
nav_drawer_items
);
// nav drawer icons from resources
navMenuIcons
=
getResources
()
.
obtainTypedArray
(
R
.
array
.
nav_drawer_icons
);
mDrawerLayout
=
(
DrawerLayout
)
findViewById
(
R
.
id
.
drawer_layout
);
mDrawerList
=
(
ListView
)
findViewById
(
R
.
id
.
list_slidermenu
);
navDrawerItems
=
new
ArrayList
<
NavDrawerItem
>();
// adding nav drawer items to array
// Home
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
0
],
navMenuIcons
.
getResourceId
(
0
,
-
1
)));
//Add patient
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
1
],
navMenuIcons
.
getResourceId
(
1
,
-
1
)));
// Manage Patients
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
2
],
navMenuIcons
.
getResourceId
(
2
,
-
1
),
true
,
"10"
));
// Reports
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
3
],
navMenuIcons
.
getResourceId
(
3
,
-
1
),
true
,
"220"
));
// Run test
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
4
],
navMenuIcons
.
getResourceId
(
4
,
-
1
)));
// Raw Data
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
5
],
navMenuIcons
.
getResourceId
(
5
,
-
1
)));
// Settings
navDrawerItems
.
add
(
new
NavDrawerItem
(
navMenuTitles
[
6
],
navMenuIcons
.
getResourceId
(
6
,
-
1
)));
// Recycle the typed array
navMenuIcons
.
recycle
();
// setting the nav drawer list adapter
adapter
=
new
NavDrawerListAdapter
(
getApplicationContext
(),
navDrawerItems
);
mDrawerList
.
setAdapter
(
adapter
);
// enabling action bar app icon and behaving it as toggle button
getActionBar
().
setDisplayHomeAsUpEnabled
(
true
);
getActionBar
().
setHomeButtonEnabled
(
true
);
mDrawerToggle
=
new
ActionBarDrawerToggle
(
this
,
mDrawerLayout
,
R
.
drawable
.
ic_drawer
,
//nav menu toggle icon
R
.
string
.
app_name
,
// nav drawer open - description for accessibility
R
.
string
.
app_name
// nav drawer close - description for accessibility
){
public
void
onDrawerClosed
(
View
view
)
{
getActionBar
().
setTitle
(
mTitle
);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu
();
}
public
void
onDrawerOpened
(
View
drawerView
)
{
getActionBar
().
setTitle
(
mDrawerTitle
);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu
();
}
};
mDrawerLayout
.
setDrawerListener
(
mDrawerToggle
);
// if (savedInstanceState == null) {
// // on first time display view for first nav item
// displayView(0);
// }
mDrawerList
.
setOnItemClickListener
(
new
SlideMenuClickListener
());
}
/**
* Slide menu item click listener
* */
private
class
SlideMenuClickListener
implements
ListView
.
OnItemClickListener
{
@Override
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
// display view for selected nav drawer item
displayView
(
position
);
}
}
/**
* Launching activity for selected nav drawer list item
* */
private
void
displayView
(
int
position
)
{
// update the main content by replacing fragments
Intent
intent
=
null
;
switch
(
position
)
{
case
0
:
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
break
;
case
1
:
intent
=
new
Intent
(
this
,
AddPatientActivity
.
class
);
break
;
case
2
:
intent
=
new
Intent
(
this
,
ManagePatientsActivity
.
class
);
break
;
case
3
:
intent
=
new
Intent
(
this
,
ManageReportsActivity
.
class
);
break
;
case
4
:
intent
=
new
Intent
(
this
,
SelectTestActivity
.
class
);
break
;
case
5
:
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
break
;
case
6
:
intent
=
new
Intent
(
this
,
MainActivity
.
class
);
break
;
default
:
break
;
}
if
(
intent
!=
null
)
{
// update selected item and title, then close the drawer
mDrawerList
.
setItemChecked
(
position
,
true
);
mDrawerList
.
setSelection
(
position
);
setTitle
(
navMenuTitles
[
position
]);
mDrawerLayout
.
closeDrawer
(
mDrawerList
);
startActivity
(
intent
);
// finish();
}
else
{
// error in creating fragment
Log
.
e
(
"MainActivity"
,
"Error in creating new Activity"
);
}
}
@Override
public
boolean
onCreateOptionsMenu
(
Menu
menu
)
{
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater
().
inflate
(
R
.
menu
.
drawer
,
menu
);
return
true
;
}
@Override
public
boolean
onOptionsItemSelected
(
MenuItem
item
)
{
// toggle nav drawer on selecting action bar app icon/title
if
(
mDrawerToggle
.
onOptionsItemSelected
(
item
))
{
return
true
;
}
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int
id
=
item
.
getItemId
();
if
(
id
==
R
.
id
.
action_settings
)
{
return
true
;
}
return
super
.
onOptionsItemSelected
(
item
);
}
/***
* Called when invalidateOptionsMenu() is triggered
*/
@Override
public
boolean
onPrepareOptionsMenu
(
Menu
menu
)
{
// if nav drawer is opened, hide the action items
boolean
drawerOpen
=
mDrawerLayout
.
isDrawerOpen
(
mDrawerList
);
menu
.
findItem
(
R
.
id
.
action_settings
).
setVisible
(!
drawerOpen
);
return
super
.
onPrepareOptionsMenu
(
menu
);
}
@Override
public
void
setTitle
(
CharSequence
title
)
{
mTitle
=
title
;
getActionBar
().
setTitle
(
mTitle
);
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/
@Override
protected
void
onPostCreate
(
Bundle
savedInstanceState
)
{
super
.
onPostCreate
(
savedInstanceState
);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle
.
syncState
();
}
@Override
public
void
onConfigurationChanged
(
Configuration
newConfig
)
{
super
.
onConfigurationChanged
(
newConfig
);
// Pass any configuration change to the drawer toggls
mDrawerToggle
.
onConfigurationChanged
(
newConfig
);
}
}
Event Timeline
Log In to Comment