Instantly share code, notes, and snippets.
Created
May 28, 2015 07:08
-
Star
(0)
0
You must be signed in to star a gist -
Fork
(0)
0
You must be signed in to fork a gist
-
Save salihyalcin/620467a96fdce3129d1b to your computer and use it in GitHub Desktop.
NavigationDrawer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package test.cbsmobil.ibb; | |
import android.content.SharedPreferences; | |
import android.content.res.Configuration; | |
import android.os.Bundle; | |
import android.preference.PreferenceManager; | |
import android.support.v4.app.ActionBarDrawerToggle; | |
import android.support.v4.app.Fragment; | |
import android.support.v4.app.FragmentManager; | |
import android.support.v4.app.FragmentTransaction; | |
import android.support.v4.view.GravityCompat; | |
import android.support.v4.widget.DrawerLayout; | |
import android.support.v7.app.ActionBar; | |
import android.support.v7.app.ActionBarActivity; | |
import android.view.LayoutInflater; | |
import android.view.Menu; | |
import android.view.MenuInflater; | |
import android.view.MenuItem; | |
import android.view.View; | |
import android.view.ViewGroup; | |
import android.widget.Button; | |
import android.widget.ListView; | |
import java.util.ArrayList; | |
public class NavigationDrawerFragment extends Fragment { | |
private NavigationDrawerListViewAdapter myAdapter; | |
public ArrayList<ListItem> myItems = new ArrayList<ListItem>(); | |
public ArrayList<ListItem> myItemsURL = new ArrayList<ListItem>(); | |
public ArrayList<String> myItemsCompare = new ArrayList<>(); | |
final AddLayer frSearch = new AddLayer(); | |
final QueryMain frQery = new QueryMain(); | |
Button editLayers; | |
Button upButton; | |
Button downButton; | |
private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position"; | |
private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; | |
private ActionBarDrawerToggle mDrawerToggle; | |
private DrawerLayout mDrawerLayout; | |
private View mFragmentContainerView; | |
private int mCurrentSelectedPosition = 0; | |
private boolean mFromSavedInstanceState; | |
private boolean mUserLearnedDrawer; | |
private ListView layerListView; | |
public NavigationDrawerFragment() { | |
} | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); | |
mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); | |
if (savedInstanceState != null) { | |
mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION); | |
mFromSavedInstanceState = true; | |
} | |
} | |
@Override | |
public void onActivityCreated(Bundle savedInstanceState) { | |
super.onActivityCreated(savedInstanceState); | |
mDrawerLayout.setScrimColor(getResources().getColor(android.R.color.transparent)); | |
setHasOptionsMenu(true); | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
Bundle savedInstanceState) { | |
View rootview = inflater.inflate(R.layout.navigation_drawer, container, false); | |
DynamicListView layerList = (DynamicListView) rootview.findViewById(R.id.dynamiclistivew); | |
editLayers = (Button) rootview.findViewById(R.id.editLayersButton); | |
myAdapter = new NavigationDrawerListViewAdapter(getActivity(), myItems); | |
layerList.setAdapter(myAdapter); | |
layerList.setCheeseList(myItems); | |
layerList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); | |
editLayers.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
if (editLayers.getText().equals("Düzenle")) { | |
editLayers.setText("Tamam"); | |
} else { | |
editLayers.setText("Düzenle"); | |
} | |
} | |
}); | |
myAdapter.notifyDataSetChanged(); | |
return rootview; | |
} | |
public boolean isDrawerOpen() { | |
return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); | |
} | |
public void setUp(int fragmentId, DrawerLayout drawerLayout) { | |
mFragmentContainerView = getActivity().findViewById(fragmentId); | |
mDrawerLayout = drawerLayout; | |
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); | |
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); | |
ActionBar actionBar = getActionBar(); | |
actionBar.setDisplayHomeAsUpEnabled(true); | |
actionBar.setHomeButtonEnabled(true); | |
mDrawerToggle = new ActionBarDrawerToggle( | |
getActivity(), /* host Activity */ | |
mDrawerLayout, /* DrawerLayout object */ | |
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ | |
R.string.navigation_drawer_open, /* "open drawer" description for accessibility */ | |
R.string.navigation_drawer_close /* "close drawer" description for accessibility */ | |
) { | |
@Override | |
public void onDrawerClosed(View drawerView) { | |
super.onDrawerClosed(drawerView); | |
if (!isAdded()) { | |
return; | |
} | |
getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() | |
} | |
@Override | |
public void onDrawerOpened(View drawerView) { | |
super.onDrawerOpened(drawerView); | |
if (!isAdded()) { | |
return; | |
} | |
if (!mUserLearnedDrawer) { | |
mUserLearnedDrawer = true; | |
SharedPreferences sp = PreferenceManager | |
.getDefaultSharedPreferences(getActivity()); | |
sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply(); | |
} | |
getActivity().supportInvalidateOptionsMenu(); | |
} | |
}; | |
if (!mUserLearnedDrawer && !mFromSavedInstanceState) { | |
mDrawerLayout.openDrawer(mFragmentContainerView); | |
} | |
mDrawerLayout.post(new Runnable() { | |
@Override | |
public void run() { | |
mDrawerToggle.syncState(); | |
} | |
}); | |
mDrawerLayout.setDrawerListener(mDrawerToggle); | |
} | |
@Override | |
public void onSaveInstanceState(Bundle outState) { | |
super.onSaveInstanceState(outState); | |
outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition); | |
} | |
@Override | |
public void onConfigurationChanged(Configuration newConfig) { | |
super.onConfigurationChanged(newConfig); | |
mDrawerToggle.onConfigurationChanged(newConfig); | |
} | |
@Override | |
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { | |
if (mDrawerLayout != null && isDrawerOpen()) { | |
inflater.inflate(R.menu.main, menu); | |
showGlobalContextActionBar(); | |
} | |
super.onCreateOptionsMenu(menu, inflater); | |
} | |
@Override | |
public boolean onOptionsItemSelected(MenuItem item) { | |
FragmentManager fm = getFragmentManager(); | |
final FragmentTransaction fragmentTransaction = fm.beginTransaction(); | |
if (mDrawerToggle.onOptionsItemSelected(item)) { | |
return true; | |
} | |
switch (item.getItemId()) { | |
case R.id.action_example: | |
if (frSearch.isVisible()) { | |
fragmentTransaction.hide(frSearch); | |
} else { | |
if (!frSearch.isAdded()) { | |
fragmentTransaction.replace(R.id.containerfra, frSearch, "SearchScreen"); | |
} | |
fragmentTransaction.show(frSearch); | |
} | |
fragmentTransaction.commit(); | |
break; | |
case R.id.action_query: | |
if (frQery.isVisible()) { | |
fragmentTransaction.hide(frQery); | |
} else { | |
if (!frQery.isAdded()) { | |
fragmentTransaction.replace(R.id.containerfra, frQery, "BaseMaps"); | |
} | |
fragmentTransaction.show(frQery); | |
} | |
fragmentTransaction.commit(); | |
break; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
private void showGlobalContextActionBar() { | |
ActionBar actionBar = getActionBar(); | |
actionBar.setDisplayShowTitleEnabled(true); | |
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); | |
actionBar.setTitle(R.string.app_name); | |
} | |
private ActionBar getActionBar() { | |
return ((ActionBarActivity) getActivity()).getSupportActionBar(); | |
} | |
class ListItem { | |
String textdata; | |
public ListItem(String textdata) { | |
this.textdata = textdata; | |
} | |
public boolean equals(Object o) { | |
ListItem ndListItemObject = (ListItem) o; | |
return this.textdata.equalsIgnoreCase(ndListItemObject.textdata); | |
} | |
} | |
public void addLayersection(String name, String url) { | |
ListItem listItem = new ListItem(name); | |
ListItem listItemurl = new ListItem(url); | |
if (myItems.size() == 0) { | |
myItems.add(0,listItem); | |
} else { | |
if (myItems.size() == 0) { | |
myItems.add(0,listItem); | |
} else { | |
if (myItems.contains(listItem)) { | |
myItems.remove(listItem); | |
} else { | |
myItems.add(0,listItem); | |
} | |
} | |
} | |
if (myItemsURL.size() == 0) { | |
myItemsURL.add(0,listItemurl); | |
} else { | |
if (myItemsURL.size() == 0) { | |
myItemsURL.add(0,listItemurl); | |
} else { | |
if (myItemsURL.contains(listItemurl)) { | |
myItemsURL.remove(listItemurl); | |
} else { | |
myItemsURL.add(0,listItemurl); | |
} | |
} | |
} | |
myAdapter.notifyDataSetChanged(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment