Advertisement
Guest User

Untitled

a guest
Aug 31st, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.13 KB | None | 0 0
  1. import android.content.Intent;
  2. import android.content.res.Configuration;
  3. import android.content.res.TypedArray;
  4. import android.os.Bundle;
  5. import android.support.v7.app.ActionBarDrawerToggle;
  6. import android.support.v4.widget.DrawerLayout;
  7. import android.support.v7.app.AppCompatActivity;
  8. import android.support.v7.widget.Toolbar;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.AdapterView;
  13. import android.widget.ListView;
  14. import android.widget.Toast;
  15.  
  16. import java.util.ArrayList;
  17. public class RestaurantDrawerActivity extends AppCompatActivity {
  18.  
  19. private DrawerLayout mDrawerLayout;
  20. private ListView mDrawerList;
  21. private ActionBarDrawerToggle mDrawerToggle;
  22.  
  23. // nav drawer title
  24. private CharSequence mDrawerTitle;
  25.  
  26. // used to store app title
  27. private CharSequence mTitle;
  28.  
  29. // slide menu items/*
  30. private String[] navMenuTitles;
  31. private TypedArray navMenuIcons;
  32.  
  33. private ArrayList<DrawerModel> navDrawerItems;
  34. private RestaurantDrawerListAdapter adapter;
  35.  
  36. Toolbar toolbar;
  37.  
  38. @Override
  39. protected void onCreate(Bundle savedInstanceState) {
  40. super.onCreate(savedInstanceState);
  41. setContentView(R.layout.restaurant_drawerlayout);
  42.  
  43. toolbar = (Toolbar) findViewById(R.id.toolbar);
  44. System.out.println(toolbar == null);
  45.  
  46. setSupportActionBar(toolbar);
  47. toolbar.setVisibility(View.VISIBLE);
  48.  
  49. }
  50.  
  51. public void set(String[] navMenuTitles, TypedArray navMenuIcons) {
  52.  
  53.  
  54. /* Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  55. System.out.println(toolbar == null);
  56.  
  57. setSupportActionBar(toolbar);*/
  58.  
  59. mTitle = mDrawerTitle = getTitle();
  60. navMenuTitles = getResources().getStringArray(R.array.restaurant_nav_drawer_items);
  61. navMenuIcons = getResources()
  62. .obtainTypedArray(R.array.nav_drawer_icons);
  63. mDrawerLayout = (DrawerLayout) findViewById(R.id.restaurant_drawer_layout);
  64. mDrawerList = (ListView) findViewById(R.id.restaurant_list_slidermenu);
  65. navDrawerItems = new ArrayList<DrawerModel>();
  66.  
  67. /*for (int i = 0; i < navMenuTitles.length; i++) {
  68. navDrawerItems.add(new DrawerModel(navMenuTitles[i],
  69. navMenuIcons.getResourceId(i, -1)));
  70. }*/
  71.  
  72. navDrawerItems.add(new DrawerModel(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
  73. // Find People
  74. navDrawerItems.add(new DrawerModel(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
  75. // Photos
  76. navDrawerItems.add(new DrawerModel(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
  77. // Communities, Will add a counter here
  78. navDrawerItems.add(new DrawerModel(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
  79. // Pages
  80. navDrawerItems.add(new DrawerModel(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
  81. // What's hot, We will add a counter here
  82. navDrawerItems.add(new DrawerModel(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
  83.  
  84. // Recycle the typed array
  85. navMenuIcons.recycle();
  86.  
  87. mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
  88.  
  89. // setting the nav drawer list adapter
  90. adapter = new RestaurantDrawerListAdapter(getApplicationContext(),
  91. navDrawerItems);
  92. mDrawerList.setAdapter(adapter);
  93.  
  94. // enabling action bar app icon and behaving it as toggle button
  95. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  96. getSupportActionBar().setHomeButtonEnabled(true);
  97.  
  98. mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
  99. R.string.app_name,
  100. R.string.app_name
  101. ) {
  102. public void onDrawerClosed(View view) {
  103. getSupportActionBar().setTitle(mTitle);
  104. // calling onPrepareOptionsMenu() to show action bar icons
  105. invalidateOptionsMenu();
  106. }
  107.  
  108. public void onDrawerOpened(View drawerView) {
  109. getSupportActionBar().setTitle(mDrawerTitle);
  110. // calling onPrepareOptionsMenu() to hide action bar icons
  111. invalidateOptionsMenu();
  112. }
  113. };
  114. mDrawerLayout.setDrawerListener(mDrawerToggle);
  115.  
  116.  
  117. }
  118.  
  119. @Override
  120. public boolean onCreateOptionsMenu(Menu menu) {
  121. getMenuInflater().inflate(R.menu.main, menu);
  122. return true;
  123. }
  124.  
  125. @Override
  126. public boolean onOptionsItemSelected(MenuItem item) {
  127. // toggle nav drawer on selecting action bar app icon/title
  128. if (mDrawerToggle.onOptionsItemSelected(item)) {
  129. return true;
  130. }
  131. // Handle action bar actions click
  132. switch (item.getItemId()) {
  133. case R.id.action_settings:
  134. return true;
  135. default:
  136. return super.onOptionsItemSelected(item);
  137. }
  138. }
  139.  
  140. /**
  141. * Diplaying fragment view for selected nav drawer list item
  142. */
  143. private void displayView(int position) {
  144. // update the main content by replacing fragments
  145. switch (position) {
  146. case 0:
  147. Intent intent = new Intent(this, RestaurantMenu.class);
  148. startActivity(intent);
  149. finish();
  150. break;
  151. case 1:
  152. Toast.makeText(getApplicationContext(), "Still in development", Toast.LENGTH_LONG).show();
  153.  
  154. break;
  155. case 2:
  156. Intent addMenuCardIntent = new Intent(this, RestaurantMenu.class);
  157. startActivity(addMenuCardIntent);
  158. finish();
  159. break;
  160. case 3:
  161. Toast.makeText(getApplicationContext(), "Still in development", Toast.LENGTH_LONG).show();
  162.  
  163. break;
  164. case 4:
  165. Intent logout = new Intent(this, Login.class);
  166. StaticRestTemplate.setJsessionid("");
  167. StaticRestTemplate.setLoggedInUser("");
  168. StaticRestTemplate.setReplyString("");
  169. startActivity(logout);
  170. finish();
  171. break;
  172. case 5:
  173. break;
  174.  
  175. default:
  176. break;
  177. }
  178. mDrawerList.setItemChecked(position, true);
  179. mDrawerList.setSelection(position);
  180. mDrawerLayout.closeDrawer(mDrawerList);
  181.  
  182. }
  183.  
  184. @Override
  185. public void setTitle(CharSequence title) {
  186. mTitle = title;
  187. getSupportActionBar().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. /* *
  210. * Called when invalidateOptionsMenu() is triggered
  211. */
  212. @Override
  213. public boolean onPrepareOptionsMenu(Menu menu) {
  214. // if nav drawer is opened, hide the action items
  215. boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
  216. menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
  217. return super.onPrepareOptionsMenu(menu);
  218. }
  219.  
  220.  
  221. /**
  222. * Slide menu item click listener
  223. */
  224. private class SlideMenuClickListener implements
  225. ListView.OnItemClickListener {
  226. @Override
  227. public void onItemClick(AdapterView<?> parent, View view, int position,
  228. long id) {
  229. // display view for selected nav drawer item
  230.  
  231. displayView(position);
  232. }
  233. }
  234. }
  235.  
  236. <?xml version="1.0" encoding="utf-8"?>
  237. <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
  238. android:id="@+id/restaurant_drawer_layout"
  239. android:layout_width="match_parent"
  240. android:layout_height="match_parent">
  241.  
  242. <FrameLayout
  243. android:id="@+id/frame_container"
  244. android:layout_width="match_parent"
  245. android:layout_height="match_parent" >
  246.  
  247. <include layout="@layout/toolbar" />
  248.  
  249. </FrameLayout>
  250.  
  251. <!-- Listview to display slider menu -->
  252. <ListView
  253. android:id="@+id/restaurant_list_slidermenu"
  254. android:layout_width="240dp"
  255. android:layout_height="match_parent"
  256. android:layout_gravity="start"
  257. android:choiceMode="singleChoice"
  258. android:dividerHeight="1dp" />
  259.  
  260. </android.support.v4.widget.DrawerLayout>
  261.  
  262. <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
  263. xmlns:app="http://schemas.android.com/apk/res-auto"
  264. android:id="@+id/toolbar"
  265. android:layout_width="match_parent"
  266. android:layout_height="wrap_content"
  267. android:title="@string/title"
  268. android:elevation="4dp"
  269. android:background="?attr/colorPrimary"
  270. app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
  271. app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement