If you think the Android project androidui listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package course.examples.colorpalettewithnavdrawer;
/*www.java2s.com*/import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.ListFragment;
import android.os.Bundle;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
publicclass DisplayColorActivity extends Activity {
private ColorPaletteAdapter mColorPaletteAdapter;
private ViewPager mViewPager;
privatefinalint[] colorArray = {
R.array.reds, R.array.pinks, R.array.purples,
R.array.deep_purples, R.array.indigo,
R.array.blue, R.array.light_blue,
R.array.cyan, R.array.teal,
R.array.green, R.array.light_green,
R.array.lime, R.array.yellow,
R.array.amber, R.array.orange,
R.array.deep_orange, R.array.brown,
R.array.grey, R.array.blue_grey};
privatefinal String[] colorNames = {
"Reds", "Pinks",
"Purples", "Deep Purples",
"Indigo", "Blue",
"Light Blue", "Cyan",
"Teal", "Green",
"Light Green", "Lime",
"Yellow", "Amber",
"Orange", "Deep Orange",
"Brown", "Grey",
"Blue Grey"};
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_color_activity);
// Create the adapter for the color palettes
mColorPaletteAdapter = new ColorPaletteAdapter(getFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mColorPaletteAdapter);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(
this,
R.layout.drawer_list_item,
colorNames));
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
}
/**
* Listener that responds to clicks on the NavigationDrawer
*/privateclass DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
publicvoid onItemClick(AdapterView parent, View view, int position, long id) {
selectItem(position);
}
}
/**
* Handle click on the NavigationDrawer
*/privatevoid selectItem(int position) {
// Highlight the selected item
mDrawerList.setItemChecked(position, true);
// Set the ViewPager's item to the currently selected position
mViewPager.setCurrentItem(position);
// Close the NavigationDrawer
mDrawerLayout.closeDrawer(mDrawerList);
}
/**
* Adapter for color palette color view
*/publicclass ColorPaletteAdapter extends FragmentPagerAdapter {
public ColorPaletteAdapter(FragmentManager fm) {
super(fm);
}
/**
* getItem() is called to instantiate the fragment for the given color palette.
* Returns a PlaceholderFragment (defined as a static inner class below).
*/
@Override
public Fragment getItem(int position) {
return ColorPaletteFragment.newInstance(colorArray[position]);
}
@Override
publicint getCount() {
return colorArray.length;
}
/*
* Returns the title (name) for the current color palette.
*/
@Override
public CharSequence getPageTitle(int position) {
return colorNames[position];
}
}
/*
* The ListFragment that displays the color view for the current color palette.
*/publicstaticclass ColorPaletteFragment extends ListFragment {
privateint mResourceID;
publicstatic ColorPaletteFragment newInstance(int resourceID) {
ColorPaletteFragment fragment = new ColorPaletteFragment();
fragment.mResourceID = resourceID;
return fragment;
}
@Override
publicvoid onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
PaletteNameAdapter adapter = new PaletteNameAdapter(
getActivity(),
R.layout.color_view,
mResourceID);
setListAdapter(adapter);
}
}
}