Cajón de navegación con Android compatible con la contraseña

Tengo una aplicación que tiene cuatro actividades diferentes. Ahora quiero agregar un cajón de navegación en la aplicación para navegar esas actividades. ¿Alguien puede dar un ejemplo o tutorial para el cajón de navegación para diferentes actividades con la compatibilidad de palabras atrás. He visto ejemplos de fragmentos pero necesito ejemplos para actividades.

Una nueva versión de la biblioteca de soporte v4 (versión 13) que contiene soporte para el patrón Cajón de navegación.
Consulte los siguientes enlaces de tutoriales para Navigation Drawer que proporciona la biblioteca de compatibilidad del Navigation Drawer de Navigation Drawer con la implementación en él.

1) Sherlock Navigation Drawer
2) NavDrawerExampleAppCompat-v7
3) Cajón de navegación en Android
4) Crear un cajón de navegación

Espero que esto te ayudará.

Necesita utilizar el appcompact de la Biblioteca de soporte.

Su actividad necesita extender ActionBarActivity .

En tu actividad

  public class MainActivity extends ActionBarActivity { 

Importar

  import android.support.v7.app.ActionBarActivity; 

En lugar de getActionBar() use getSupportActionbar()

Use Them.AppCompact

O use la biblioteca ActionBarSherlock.

https://stackoverflow.com/questions/20071004/add-icon-in-drawerlist-by-actionbarsherlock/20077469#20077469

Ejemplo:

MainActivity.java

 public class MainActivity extends ActionBarActivity { // Fields ----------------------------------------------------------------- private DrawerLayout drawerLayout; private ListView drawerList; private ActionBarDrawerToggle drawerToggle; private MenuListAdapter menuAdapter; private int[] icons; private Fragment fragment1; private Fragment fragment2; private Fragment fragment3; private CharSequence drawerTitle; private CharSequence title; private final String[] titles = new String[]{ "Title Fragment #1", "Title Fragment #2", "Title Fragment #3" }; private final String[] subtitles = new String[]{ "Subtitle Fragment #1", "Subtitle Fragment #2", "Subtitle Fragment #3" }; // Lifecycle Callbacks ---------------------------------------------------- @Override protected void onCreate(Bundle savedInstanceState) { // Base implemenation super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Instantiate the fragments fragment1 = new Fragment1(); fragment2 = new Fragment2(); fragment3 = new Fragment3(); // Get the title from this activity title = drawerTitle = getTitle(); // Get the icons from the drawables folder icons = new int[]{ R.drawable.action_about, R.drawable.action_settings, R.drawable.collections_cloud }; // Get the drawer layout from the XML file and the ListView inside it drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); drawerList = (ListView)findViewById(R.id.listview_drawer); // Set a custom shadow over that overlays the main content // when the drawer opens drawerLayout.setDrawerShadow( R.drawable.drawer_shadow, GravityCompat.START); // Pass the string arrays to the MenuListAdapter, set the drawer // list adapter to it and set up its click listener menuAdapter = new MenuListAdapter( MainActivity.this, titles, subtitles, icons); drawerList.setAdapter(menuAdapter); drawerList.setOnItemClickListener(new DrawerItemClickListener()); // Enable the action bar to have up navigation getSupportActionBar().setHomeButtonEnabled(true); //getSupportActionBar().setDisplayHomeAsUpEnabled(true); // Allow the the action bar to toggle the drawer drawerToggle = new ActionBarDrawerToggle( this, drawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close){ public void onDrawerClosed(View view){ super.onDrawerClosed(view); } public void onDrawerOpened(View view){ getSupportActionBar().setTitle(drawerTitle); super.onDrawerOpened(view); } }; drawerLayout.setDrawerListener(drawerToggle); // If this is the first time opening this activity, // start with loading fragment #1 if (savedInstanceState == null){ selectItem(0); } } // Methods ---------------------------------------------------------------- @Override public boolean onOptionsItemSelected(MenuItem item){ // If the user has pressed the action bar icon if (item.getItemId() == android.R.id.home){ // If the drawer is open, close it; vice versa if (drawerLayout.isDrawerOpen(drawerList)){ drawerLayout.closeDrawer(drawerList); } else { drawerLayout.openDrawer(drawerList); } } // Finish by letting the super class do the rest return super.onOptionsItemSelected(item); } @Override protected void onPostCreate(Bundle savedInstanceState){ // Call the super implementation and synchronize the drawer super.onPostCreate(savedInstanceState); drawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig){ // Call the super implemenation on this activity // and the drawer toggle object super.onConfigurationChanged(newConfig); drawerToggle.onConfigurationChanged(newConfig); } private void selectItem(int position){ // Create a new fragment transaction and start it FragmentTransaction fragTran = getSupportFragmentManager() .beginTransaction(); // Locate the position selected replace the content view // with the fragment of the number selected switch (position){ case 0:{ fragTran.replace(R.id.content_frame, fragment1); break; } case 1:{ fragTran.replace(R.id.content_frame, fragment2); break; } case 2:{ fragTran.replace(R.id.content_frame, fragment3); break; } } // Commit the transaction and close the drawer fragTran.commit(); drawerList.setItemChecked(position, true); drawerLayout.closeDrawer(drawerList); } public void setTitle(CharSequence title){ // Save the passed in title and set the action bar title this.title = title; getSupportActionBar().setTitle(title); } // Classes ---------------------------------------------------------------- private class DrawerItemClickListener implements ListView.OnItemClickListener{ @Override public void onItemClick( AdapterView< ?> parent, View view, int position, long id) { // When clicked, select open the appropriate fragment selectItem(position); } } } 

activity_main.xml

     public class MenuListAdapter extends BaseAdapter { // Fields ----------------------------------------------------------------- private Context mcontext; private String[] titles; private String[] subtitles; private int[] icons; private LayoutInflater inflater; // Constructor ------------------------------------------------------------ public MenuListAdapter( Context context, String[] titles, String[] subtitles, int[] icons){ mcontext = context; this.titles = titles; this.subtitles = subtitles; this.icons = icons; inflater = (LayoutInflater)mcontext.getSystemService( Context.LAYOUT_INFLATER_SERVICE); } // Accessors -------------------------------------------------------------- @Override public int getCount(){ return titles.length; } @Override public Object getItem(int position){ return titles[position]; } @Override public long getItemId(int position){ return position; } // Methods ---------------------------------------------------------------- public View getView(int position, View convertView, ViewGroup parent){ ViewHolder viewHolder; // Only inflate the view if convertView is null if (convertView == null){ viewHolder = new ViewHolder(); if(inflater!=null) { convertView = inflater.inflate( R.layout.drawer_list_item, parent, false); viewHolder.txtTitle = (TextView)convertView.findViewById( R.id.title); viewHolder.txtSubtitle = (TextView)convertView.findViewById( R.id.subtitle); viewHolder.imgIcon = (ImageView)convertView.findViewById( R.id.icon); // This is the first time this view has been inflated, // so store the view holder in its tag fields convertView.setTag(viewHolder); } else { Log.i("........",""+null); } } else { viewHolder = (ViewHolder)convertView.getTag(); } // Set the views fields as needed viewHolder.txtTitle.setText(titles[position]); viewHolder.txtSubtitle.setText(subtitles[position]); viewHolder.imgIcon.setImageResource(icons[position]); return convertView; } // Classes ---------------------------------------------------------------- static class ViewHolder { TextView txtTitle; TextView txtSubtitle; ImageView imgIcon; } } 

drawr_list_item.xml

 < ?xml version="1.0" encoding="utf-8"?>        

fragment1.xml

     

fragment2.xml

    

fragment3.xml

    

Fragment1.java

 public class Fragment1 extends Fragment { String[] titles={"A","B","C"}; @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.fragment1, container, false); ListView lv = (ListView) rootView.findViewById(R.id.listView1); ArrayAdapter adapter = new ArrayAdapter(getActivity(),android.R.layout.simple_list_item_1,titles); lv.setAdapter(adapter); return rootView; } } 

Fragment2.java

 public class Fragment2 extends Fragment { @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.fragment2, container, false); return rootView; } } 

Fragment3.java

 public class Fragment3 extends Fragment { @Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.fragment3, container, false); return rootView; } } 

Agregar tema en manifiesto

 android:theme="@style/Theme.AppCompat" 

Chasquido

enter image description here

El Cajón de navegación que está implementado en el uso de DrawerLayout , si no está utilizando ninguna biblioteca externel, está disponible en el paquete de soporte de Android. Por lo tanto, puede utilizar sobre el nivel 4 de API Donut (1.6). Use este enlace para más información DrawerLayout