Advertisement
Guest User

Untitled

a guest
Apr 24th, 2014
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.82 KB | None | 0 0
  1. navMenuTitles = getActivity().getResources().getStringArray(R.array.nav_drawer_items);
  2. navMenuTitles[1] = username;
  3.  
  4. public class MainActivity extends Activity {
  5. private DrawerLayout mDrawerLayout;
  6. private ListView mDrawerList;
  7. private ActionBarDrawerToggle mDrawerToggle;
  8.  
  9. // nav drawer title
  10. private CharSequence mDrawerTitle;
  11.  
  12. // used to store app title
  13. private CharSequence mTitle;
  14.  
  15. // slide menu items
  16. private String[] navMenuTitles;
  17. private TypedArray navMenuIcons;
  18.  
  19. private ArrayList<NavDrawerItem> navDrawerItems;
  20. private NavDrawerListAdapter adapter;
  21.  
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25. setContentView(R.layout.activity_main);
  26.  
  27. mTitle = mDrawerTitle = getTitle();
  28.  
  29. // load slide menu items
  30. navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
  31.  
  32. // nav drawer icons from resources
  33. navMenuIcons = getResources()
  34. .obtainTypedArray(R.array.nav_drawer_icons);
  35.  
  36. mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
  37. mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
  38.  
  39. navDrawerItems = new ArrayList<NavDrawerItem>();
  40.  
  41. // adding nav drawer items to array
  42. // Home
  43. navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
  44. // Find People
  45. navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
  46. // Photos
  47. navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
  48. // Communities, Will add a counter here
  49. navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, "22"));
  50. // Pages
  51. navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
  52.  
  53.  
  54. // Recycle the typed array
  55. navMenuIcons.recycle();
  56.  
  57. mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
  58.  
  59. // setting the nav drawer list adapter
  60. adapter = new NavDrawerListAdapter(getApplicationContext(),
  61. navDrawerItems);
  62. mDrawerList.setAdapter(adapter);
  63.  
  64. // enabling action bar app icon and behaving it as toggle button
  65. getActionBar().setDisplayHomeAsUpEnabled(true);
  66. // getActionBar().setHomeButtonEnabled(true);
  67.  
  68. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
  69. R.drawable.ic_drawer, //nav menu toggle icon
  70. R.string.app_name, // nav drawer open - description for accessibility
  71. R.string.app_name // nav drawer close - description for accessibility
  72. ) {
  73. public void onDrawerClosed(View view) {
  74. getActionBar().setTitle(mTitle);
  75. // calling onPrepareOptionsMenu() to show action bar icons
  76. invalidateOptionsMenu();
  77. }
  78.  
  79. public void onDrawerOpened(View drawerView) {
  80. getActionBar().setTitle(mDrawerTitle);
  81. // calling onPrepareOptionsMenu() to hide action bar icons
  82. invalidateOptionsMenu();
  83. }
  84. };
  85. mDrawerLayout.setDrawerListener(mDrawerToggle);
  86.  
  87. if (savedInstanceState == null) {
  88. // on first time display view for first nav item
  89. displayView(0);
  90. }
  91. }
  92.  
  93. /**
  94. * Slide menu item click listener
  95. * */
  96. private class SlideMenuClickListener implements
  97. ListView.OnItemClickListener {
  98. @Override
  99. public void onItemClick(AdapterView<?> parent, View view, int position,
  100. long id) {
  101. // display view for selected nav drawer item
  102. displayView(position);
  103. }
  104. }
  105.  
  106. @Override
  107. public boolean onCreateOptionsMenu(Menu menu) {
  108. getMenuInflater().inflate(R.menu.main, menu);
  109. return true;
  110. }
  111.  
  112. @Override
  113. public boolean onOptionsItemSelected(MenuItem item) {
  114. // toggle nav drawer on selecting action bar app icon/title
  115. if (mDrawerToggle.onOptionsItemSelected(item)) {
  116. return true;
  117. }
  118. // Handle action bar actions click
  119. switch (item.getItemId()) {
  120. case R.id.action_settings:
  121. return true;
  122. default:
  123. return super.onOptionsItemSelected(item);
  124. }
  125. }
  126.  
  127. /* *
  128. * Called when invalidateOptionsMenu() is triggered
  129. */
  130. @Override
  131. public boolean onPrepareOptionsMenu(Menu menu) {
  132. // if nav drawer is opened, hide the action items
  133. boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
  134. menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
  135. return super.onPrepareOptionsMenu(menu);
  136. }
  137.  
  138. /**
  139. * Diplaying fragment view for selected nav drawer list item
  140. * */
  141. private void displayView(int position) {
  142. // update the main content by replacing fragments
  143. Fragment fragment = null;
  144. switch (position) {
  145. case 0:
  146. fragment = new HomeFragment();
  147. break;
  148. case 1:
  149. fragment = new LoginFragment();
  150. break;
  151. case 2:
  152. fragment = new PhotosFragment();
  153. break;
  154. case 3:
  155. fragment = new CommunityFragment();
  156. break;
  157. case 4:
  158. fragment = new PagesFragment();
  159. break;
  160. case 5:
  161. fragment = new WhatsHotFragment();
  162. break;
  163.  
  164. default:
  165. break;
  166. }
  167.  
  168. if (fragment != null) {
  169. FragmentManager fragmentManager = getFragmentManager();
  170. fragmentManager.beginTransaction()
  171. .replace(R.id.frame_container, fragment).commit();
  172.  
  173. // update selected item and title, then close the drawer
  174. mDrawerList.setItemChecked(position, true);
  175. mDrawerList.setSelection(position);
  176. setTitle(navMenuTitles[position]);
  177. mDrawerLayout.closeDrawer(mDrawerList);
  178. } else {
  179. // error in creating fragment
  180. Log.e("MainActivity", "Error in creating fragment");
  181. }
  182. }
  183.  
  184. @Override
  185. public void setTitle(CharSequence title) {
  186. mTitle = title;
  187. getActionBar().setTitle(mTitle);
  188. }
  189.  
  190. /**
  191. * When using the ActionBarDrawerToggle, you must call it during
  192. * onPostCreate() and onConfigurationChanged()...
  193. */
  194.  
  195. @Override
  196. protected void onPostCreate(Bundle savedInstanceState) {
  197. super.onPostCreate(savedInstanceState);
  198. // Sync the toggle state after onRestoreInstanceState has occurred.
  199. mDrawerToggle.syncState();
  200. }
  201.  
  202. @Override
  203. public void onConfigurationChanged(Configuration newConfig) {
  204. super.onConfigurationChanged(newConfig);
  205. // Pass any configuration change to the drawer toggls
  206. mDrawerToggle.onConfigurationChanged(newConfig);
  207. }
  208.  
  209. public interface OnContactSelected {
  210. void OnContactSelected (String selectedContactID);
  211. }
  212.  
  213. @Override
  214. public void onAttach(Activity activity) {
  215. super.onAttach(activity);
  216.  
  217. mOnContactSelected = (OnContactSelected) getActivity();
  218.  
  219. }
  220.  
  221. @Override
  222. public void onListItemClick(ListView listView, View view, int position,
  223. long loc) {
  224. super.onListItemClick(listView, view, position, loc);
  225.  
  226. mOnContactSelected.OnContactSelected ("clicked");
  227.  
  228. }
  229.  
  230. @Override
  231. public void OnContactSelected (String selectedContactID)
  232. {
  233. // Change the navigation title here
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement