MyActivity.java
import java.util.ArrayList;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import menudesilzante.NavDrawerItem;
import menudesilzante.NavDrawerListAdapter;
public class MyActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
// nav drawer title
private CharSequence mDrawerTitle;
// used to store app title
private CharSequence mTitle;
// slide menu items
private String[] navMenuTitles;
private TypedArray navMenuIcons;
private ArrayList navDrawerItems;
private NavDrawerListAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
mTitle = mDrawerTitle = getTitle();
// load slide menu items
navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
// nav drawer icons from resources
navMenuIcons = getResources()
.obtainTypedArray(R.array.nav_drawer_icons);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
navDrawerItems = new ArrayList();
// agregar un nuevo item al menu deslizante
// Seccion1
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
// Seccion2
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
// Seccion3
navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1), true, "Primavera/\nVerano"));
// Seccion4
navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
// Recycle the typed array
navMenuIcons.recycle();
mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
// setting the nav drawer list adapter
adapter = new NavDrawerListAdapter(getApplicationContext(),
navDrawerItems);
mDrawerList.setAdapter(adapter);
// enabling action bar app icon and behaving it as toggle button
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, //nav menu toggle icon
R.string.app_name, // nav drawer open - description for accessibility
R.string.app_name // nav drawer close - description for accessibility
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
if (savedInstanceState == null) {
// on first time display view for first nav item
displayView(0);
}
}
/**
* Slide menu item click listener
* */
private class SlideMenuClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView parent, View view, int position,
long id) {
// display view for selected nav drawer item
displayView(position);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
switch (item.getItemId()) {
case R.id.action_settings:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
/* *
* Called when invalidateOptionsMenu() is triggered
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
/**
* Diplaying fragment view for selected nav drawer list item
* */
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Seccion();
break;
case 1:
fragment = new Seccion();
break;
case 2:
fragment = new Seccion();
break;
case 3:
fragment = new Seccion();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("Ramiro", "MainActivity - Error cuando se creo el fragment");
}
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}
/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggls
mDrawerToggle.onConfigurationChanged(newConfig);
}
}
NavDrawerItem.java
public class NavDrawerItem {
private String title;
private int icon;
private String count = "0";
// boolean to set visiblity of the counter
private boolean isCounterVisible = false;
public NavDrawerItem(){}
public NavDrawerItem(String title, int icon){
this.title = title;
this.icon = icon;
}
public NavDrawerItem(String title, int icon, boolean isCounterVisible, String count){
this.title = title;
this.icon = icon;
this.isCounterVisible = isCounterVisible;
this.count = count;
}
public String getTitle(){
return this.title;
}
public int getIcon(){
return this.icon;
}
public String getCount(){
return this.count;
}
public boolean getCounterVisibility(){
return this.isCounterVisible;
}
public void setTitle(String title){
this.title = title;
}
public void setIcon(int icon){
this.icon = icon;
}
public void setCount(String count){
this.count = count;
}
public void setCounterVisibility(boolean isCounterVisible){
this.isCounterVisible = isCounterVisible;
}
}
NavDrawerListAdapter.java
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class NavDrawerListAdapter extends BaseAdapter {
private Context context;
private ArrayList<NavDrawerItem> navDrawerItems; //CORREJIDO, gracias a ANONIMO
public NavDrawerListAdapter(Context context, ArrayList navDrawerItems){
this.context = context;
this.navDrawerItems = navDrawerItems;
}
@Override
public int getCount() {
return navDrawerItems.size();
}
@Override
public Object getItem(int position) {
return navDrawerItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.drawer_list_item, null);
}
ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
TextView txtTitle = (TextView) convertView.findViewById(R.id.title);
TextView txtCount = (TextView) convertView.findViewById(R.id.counter);
imgIcon.setImageResource(navDrawerItems.get(position).getIcon());
txtTitle.setText(navDrawerItems.get(position).getTitle());
// displaying count
// check whether it set visible or not
if(navDrawerItems.get(position).getCounterVisibility()){
txtCount.setText(navDrawerItems.get(position).getCount());
}else{
// hide the counter view
txtCount.setVisibility(View.GONE);
}
return convertView;
}
}
Seccion.java
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* Created by user on 26/08/2014.
*/
public class Seccion1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.seccion1, container, false);
return rootView;
}
}
layout (carpeta)
activity_my.xml
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Framelayout to display Fragments -->
<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Listview to display slider menu -->
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@color/list_divider"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector"
android:background="@color/list_background"/>
</android.support.v4.widget.DrawerLayout>
drawer_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="@drawable/list_selector">
<ImageView
android:id="@+id/icon"
android:layout_width="25dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:contentDescription="@string/desc_list_item_icon"
android:src="@drawable/ic_home"
android:layout_centerVertical="true" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/icon"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="@color/list_item_title"
android:gravity="center_vertical"
android:paddingRight="40dp"
android:paddingLeft="0dp"/>
<TextView android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/counter_bg"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="8dp"
android:textColor="@color/counter_text_color"/>
</RelativeLayout>
seccion.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
drawable (carpeta)
counter_bg.xml
list_item_bg_normal.xml
list_item_bg_pressed.xml
list_selector.xml
values (carpeta)
strings.xml
colors.xml
counter_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- vista del color del background -->
<solid android:color="@color/counter_text_bg" >
</solid>
<!-- Si queres agregar algun espacio -->
<padding
android:right="3dp"
android:left="3dp" >
</padding>
<!-- Corner raduis -->
<corners android:radius="2dp" >
</corners>
</shape>
list_item_bg_normal.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/list_background"
android:endColor="@color/list_background"
android:angle="90" />
</shape>
list_item_bg_pressed.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/list_background_pressed"
android:endColor="@color/list_background_pressed"
android:angle="90" />
</shape>
list_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_item_bg_normal" android:state_activated="false"/>
<item android:drawable="@drawable/list_item_bg_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_item_bg_pressed" android:state_activated="true"/>
</selector>
values (carpeta)
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Ejemplo Menu</string> <string name="action_settings">Configuración</string> <string name="hello_world">Hello world!</string> <string name="drawer_open">Se abrio el menu lateral</string> <string name="drawer_close">Se cerro el menu lateral</string> <!-- Nombres de los items --> <string-array name="nav_drawer_items"> <item >Seccion1</item> <item >Seccion2</item> <item >Seccion3</item> <item >Seccion4</item> </string-array> <!-- Iconos de los items --> <array name="nav_drawer_icons"> <item>@drawable/ic_whats_hot</item> <item>@drawable/ic_people</item> <item>@drawable/ic_photos</item> <item>@drawable/ic_communities</item> </array> <!-- Content Description --> <string name="desc_list_item_icon">Item Icon</string> </resources>
colors.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="list_item_title">#fff</color> <color name="list_background">#303030</color> <color name="list_background_pressed">#992416</color> <color name="list_divider">#272727</color> <color name="counter_text_bg">#626262</color> <color name="counter_text_color">#c5c4c4</color> </resources>
Muchisimas gracias amigo, me ha servido de mucho. :DD recomendado por lo menos intentarlo!
ResponderEliminarBárbaro, me alegro.
Eliminarhola e querido abrir tu proyecto pero solo aparece cargando y nunca lo abre, sera por que no lleva el apk o dime hay alguna solucion
EliminarCuando creo un menú principal desplegable con fragments desde el MainActivity todo bien, selecciono una opción me lleva a una segunda clase esta sería un listView o botones con varias opciones y al seleccionar una la idea es que me lleve a una tercera clase.
ResponderEliminarPero el problema es cuando intento colocar en la 2da clase para que llame a la 3ra, hay problemas usando los métodos necesarios. En cambio si uso este desde el Main ahí si me funciona bien. No se si sea una restricción o la 2da debe tener un extends o implement .
Si entiendo
EliminarTenes el principal con un contendedor, que se contendedor se reemplaza por un fragment que sería la segunda llamada.
Si queres llamar a una tercera una forma sería llamar un Activity
del boton que tengas de la segunda llamada hace un simple
Intent i = new Intent(getActivity, Tercerallamada.class);
startactivity(i);
Hola! muy buen video! Tengo Rendering problems con el activity_my.xlm me aparece esto (uso la sdk API19, para la visualizacion de los layout): "The following classes could not be instantiated:
ResponderEliminar- android.support.v4.widget.DrawerLayout (Open Class, Show Exception)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE".
Además, me gustaria tener un fragmento que haga de "home page" a todos los fragmentos del list view, osea que al abrirse la app aparezca este fragmento, y si me encuentro en cualquier otro al apretar el boton atrás del telefono me envie a este "home page", se puede hacer sin que este fragmento aparezca en el list view?
Saludos!
El botón atrás no funciona en menu deslizante, solo funciona con los activity, cuando vas para adelante.. digamos activitya -> activity b -> activity c .. del c, podes volver al b
Eliminaren el caso del menu, no podes volver atrás porque se reemplaza y se pierde, a no se que lo guardes
Ramiro como podría hacer para que la aplicación no empiece en el MyActivity sino en otra clase, debo modificar el manifest?
ResponderEliminarEs correcto
Eliminarpodrias acer uno sobre web view o dar una esplication basica de como implementarlo en una seccion
ResponderEliminarhttp://cursoandroidstudio.blogspot.com.ar/2014/09/webview.html
EliminarGracias
ResponderEliminarHola, gracias por subir los vídeos son muy interesantes y me están ayudando mucho. Tengo una pregunta / consulta. Para hacer un navigation drawer con el estilo similar al de Google play me refiero a la parte de la foto de arriba y donde pone el email, en que parte tengo que hacerlo y que tengo que poner en el código.Otra pregunta puedo añadir una activity dentro de una seccion. por ejemplo ajustes y que vaya a la activity settings o google maps.
ResponderEliminarSaludos y muchas gracias !
Hola, muchas gracias por los videos, hasta ahora he ido avanzando.
ResponderEliminarPero me he bajado este proyecto de github, pero cuando lo instalo, me pone "Project SDK is no defined".
Supongo que lo instalo mal, como lo importo.
yo lo hago con "Open an existing Android studio project"
Muchas Gracias por tu ayuda.
Error mio, solucionado. pero ahora me da el siguiente error.
EliminarEn MyActivity.java :
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, //nav menu toggle icon
R.string.app_name, // nav drawer open - description for accessibility
R.string.app_name // nav drawer close - description for accessibility
) {
¿por que puede ser?
Gracias
Como solucionaste el problema anterior?
EliminarAmigo una pregunta el metodo get donde esta creado? porque me sale error que ese metodo no existe. Me podrias explicar un pocov PORFAVOR :)
ResponderEliminarNo hay ningún método GET, no te estarás confundiendo con HTML?
EliminarAmigo hablo de la parte del NavDrawerList Adapter en el metodo GetView():
EliminarimgIcon.setImageResource(navDrawerItems.get(position).getIcon());
txtTitle.setText(navDrawerItems.get(position).getTitle());
Es en esta parte donde no reconoce los metodos de la clase NavDrawerItem. Me puedes explicar esq no se mucho :(
Amigo hablo de la parte del NavDrawerList Adapter en el metodo GetView():
EliminarimgIcon.setImageResource(navDrawerItems.get(position).getIcon());
txtTitle.setText(navDrawerItems.get(position).getTitle());
Es en esta parte donde no reconoce los metodos de la clase NavDrawerItem. Me puedes explicar esq no se mucho :(
Este comentario ha sido eliminado por el autor.
EliminarEste comentario ha sido eliminado por el autor.
EliminarEl Arraylist que declaras en el NavDrawerListAdapter debe ser un arraylist de objetos navdraweritem, de esta manera podras acceder a los metodos propios de arraylist y los de la clase navdraweritem. Saludos.
EliminarCorrige esta línea:
Eliminarprivate ArrayList navDrawerItems;
esa línea es la que debería aparecer en el NavDrawerListAdapter.java
Perdón, esa línea a corregir, debería ser así:
Eliminarprivate ArrayList navDrawerItems;
Siento volver a escribir, pero por alguna razón lo autocorrige el blogspot y lo pone mal, a ver con espacios:
Eliminarprivate ArrayList < NavDrawerItem > navDrawerItems;
Gracias Anónimo, ahí lo corregí, lamentablemente a veces cuando lo copio, me saca el < >.
Eliminarhola soy nuevo en android, me he encontrado con un problema al seguir los pasos en el archivo NavDrawerListAdapter.java , me marca error en este :
ResponderEliminarimport com.matiasdupuydelome.matiasapp.R;
¿de donde sale ?
en MyActivity.java de igual forma:
import menudesilzante.NavDrawerItem;
import menudesilzante.NavDrawerListAdapter;
estos import de donde los importo
mi app se llama :
package ejemplo1.com.mx.menujc;
me podras ayudar
hola soy nuevo en android, me he encontrado con un problema al seguir los pasos en el archivo NavDrawerListAdapter.java , me marca error en este :
ResponderEliminarimport com.matiasdupuydelome.matiasapp.R;
¿de donde sale ?
en MyActivity.java de igual forma:
import menudesilzante.NavDrawerItem;
import menudesilzante.NavDrawerListAdapter;
estos import de donde los importo
mi app se llama :
package ejemplo1.com.mx.menujc;
me podras ayudar
cambia el "com.matiasdupuydelome.matiasapp" por el nombre de tu paquete
Eliminarcapaz has creado un proyecto nuevo y has copiado con eso también..
lo cambie por import ejemplo1.com.mx.menujc.R;
Eliminarpero la R me la marca en rojo, sigue marcando error la "R"
Hace "Clean Project" - "Rebuild project" y después cerra y abrí el proyecto
EliminarMe marca error :
EliminargetActionBar().setDisplayHomeAsUpEnabled(true);
Consola:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
at menulateralslide.elpoeta.com.menulateralslide.MyActivity.onCreate(MyActivity.java:80)
lo han solucionado?
EliminarHola, gracias por subir los vídeos son muy interesantes y me están ayudando mucho. Tengo una pregunta / consulta. Para hacer un navigation drawer con el estilo similar al de Google play me refiero a la parte de la foto de arriba y donde pone el email, en que parte tengo que hacerlo y que tengo que poner en el código.Otra pregunta puedo añadir una activity dentro de una seccion. por ejemplo ajustes y que vaya a la activity settings o google maps.
ResponderEliminarEl stilo esta en los list_item_bg_normal.xml y list_item_pressed.xml .. cambio los colores y cambia todo el diseño
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminaren mi app hago un splash y luego trato de mostrar el codigo este y no me sale nada, solo en el emulador me pone que la aplicacion se detuvo. Pudieras explicarme como logro eso
ResponderEliminarTengo el mismo problema que el comperño Joyner, alguna sugerencia?
ResponderEliminarGracias!
Buen ejemplo, lo estoy implementando para version 4.4 para arriba
Soy nuevo en esto.
hola amigo.gracias por tu video,la pregunta es como puedo modificar el codigo para generar un arreglo que me permita ver un submenu dentro de cualquier item . gracias de antemano
ResponderEliminarcon listView expandible, es otro tipo de listView
EliminarHola Ramiro, acabo de ver tu video del Navigation Drawer https://www.youtube.com/watch?v=IuFHUB1iI14, ya implementé satisfactoriamente eso con la plantilla de Android Studio y tu tutorial y ahora quiero aplicar un cambio de estilo, sin embargo los archivos NewDrawerItem.java y NewDrawerListAdapter.java no son generados y en vez de esos te da el NavigationDrawerFragment.java que tiene el siguiente método para los elementos del menú lateral:
ResponderEliminar@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mDrawerListView = (ListView) inflater.inflate(
R.layout.fragment_navigation_drawer, container, false);
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
selectItem(position);
}
});
mDrawerListView.setAdapter(new ArrayAdapter(
getActionBar().getThemedContext(),
android.R.layout.simple_list_item_activated_1,
android.R.id.text1,
new String[]{
getString(R.string.title_section1),
getString(R.string.title_section2),
getString(R.string.title_section3),
getString(R.string.title_section4),
}));
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
return mDrawerListView;
}
¿Cómo podría agregar iconos y modificar los estilos de los elementos del menú lateral?
Saludos, excelente trabajo!
en esas estoy yo también, tengo el mismo problema, si lo logras solucionar me comentas, y lo contrario.
EliminarEn este link se detallan los cambios a realizar para que tome, tanto los títulos como los iconos, de un array.
Eliminarhttp://stackoverflow.com/questions/28119149/how-do-i-add-icons-to-android-studios-navigation-drawer-template
Un cordial saludo y gracias por compartir :)
hola buenas tardes me da el siguiente error en el momento de modificarlo
ResponderEliminargetActionBar().setDisplayHomeAsUpEnabled(true);
marca nullpointerexception alguna sugerencia ?
Prueba a cambiar en la clase MyActivity el extends por un ActionBarActivity y luego usa en su lugar un getSupportActionBar()...
EliminarTe recomiendo ademas usar un Lollipop Drawer, a mi modo de ver es más vistosa la animación del icono del menú.
Hola buenas tardes, mi pregunta es como implementar una Viewpager a una de las opciones del NavDawer. Gracias y me encantan tus videos,
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarRamiro, me gustaría hacer, que el listView estuviera clasificado por grupos, cada uno llevaría un nombre relacionado a su categoría y a continuación las opciones para seleccionar, no me refiero a un expandableListView, sólo a que cada grupo de secciones tuviera su propio encabezado o textView, que no sería seleccionable. Ej: Clase A: Pepito, Antoñito y Sarita. Clase B: Alonso, María y Rebeca.
ResponderEliminarÉsta forma de organizar el listView la he visto bastante por ahí, incluso subrayando los encabezados, sabrías aclararme un poco la forma de poder hacerlo.
Gracias, un saludo.
Ok, solucionado, para quien le interese, es fácil, con una cabecera o a pie de página (addHeaderView-addFooterView).
EliminarEste comentario ha sido eliminado por el autor.
EliminarOk Ramiro, ahorita te mando algo con lo que estoy, aunque todavía queda mucho por pulir, un saludo.
EliminarAmigos perdonen la molestia, pero me tira estos dos errores y soy nuevo en esto de android, alguien podria orientarme?
ResponderEliminarhttps://imageshack.com/i/pafnotSdp
Comprueba en tu archivo build.gradle, en tu proyecto, y añade este codigo, si es que no esta:
EliminarbuildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
Hola, quería preguntar ¿cómo exportaste el ActionBarDrawerToggle y DrawerLayout? estoy en android studio con la API 21, y no logró entender esa parte.
ResponderEliminarSaludos lecs.
hola, ami me sale este error en android studio 1.2 con windows 7 ultimate :
ResponderEliminarRendering Problems The following classes could not be instantiated:
- android.support.v7.internal.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE Exception Details java.lang.ClassNotFoundException: android.support.v4.view.ViewPropertyAnimatorListener Copy stack to clipboard
como solucionarlo ?
Hola, gracias por la valiosa informacion. Descargue el proyecto pero al correrlo en android studio 1.1.0 me da el siguiente error : Error Cause: invalid END header (bad central directory offset). He buscado pero no he encontrado algo concreto para solucionarlo. Gracias.
ResponderEliminarHola Ramiro, felicitaciones por el blog, me ha sido de gran ayuda. Quisiera saber ¿Como hacer un ListView simple (como el del ejemplo) en un Fragment?
ResponderEliminarpregunta si tengo un android studio 1.2 con api 4.1 como puedo ejecutar esta aplicacion, no me deja, me marca es un glade no es la version del method requeria o algo asi y algo que ver con glade plugin, sabes como solucionarlo, pero soy algo nuevo con android, mi correo es: homerrobo@gmail.com
ResponderEliminarcomo paso de la opcion lateral a un activiy si necesidad de entrar a un fragment ?
ResponderEliminarMuy buen tutorial, te felicito. Solamente tengo una pequeña duda, como haces para que el menú aparezca automáticamente cuando se abre la aplicación. Gracias por la ayuda que puedas brindarme.
ResponderEliminarHola Ramiro excelentes tutoriales todos de verdad gracias, oye te quería hacer una pequeña pregunta como coloco el Icono en este menu drawable ya que lo implemente en mi app pero las formas en las que salen en Internet para colocar el icono no me funcionan aca, Gracias y disculpa las molestias.
ResponderEliminarHola ya realice el tutorial y todo ok pero tengo una duda al ejecutar la aplicacion me sigue apareciendo el menu con un submenu que dice "Configuracion" arriba a la derecha..
ResponderEliminarlo he tratado de ocultar, eliminar y hasta ponerle setvisible(false) pero si hago esto la aplicación se cierra, me supongo que depende de ese menú la aplicación..
Alguna forma de quitarlo sin afectar la aplicación?
Funcina en Eclipse ???
ResponderEliminarHola, me funcionó bien, pero me gustaría saber como puedo llamar desde la seccion 2 (Fragment) a una clase ActionBarActivity (Tabs)
ResponderEliminarGracias!
Hola Ramiro!
ResponderEliminarEstoy creando una aplicacion desde hace ya un par de meses y muchos de tus tutoriales me han sido muy utiles!
Comentarte simplemente que en mi caso, hay una linea que falta añadir para que el icono de ic_drawer se muestre, que es el siguiente:
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer);
justo despues de:
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true);
De todas maneras gracias!!
hola he seguido paso a paso el tutorial, solo tengo un error
ResponderEliminarmDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
tengo error en el drawer_layout me dice cannot resolve symbol, espero que me puedan ayudar
soy nuevo en android
saludos
HOLA AMMIGO BUEN TUTORIAL FELICIDADES OYES TENGO UN DUDA COMO CREO UN 4 SECCION HAS DE CUENTA QUE YA LAS HICE Y SALEN EN EL MENU PERO NO ME CAMBIA A ESA PANTALLA SI NO A LA DEL MAIN despues de la terecera seccion ya no me corre.... help me plis porfas ayudamennn
ResponderEliminarHola Ramiro que tal??
ResponderEliminarTe escribo porque tengo un problema nivel Dios, aunque creo que no debe ser compliacado. El asunto es que tengo este codigo (Main activity-onOpstionItem....):
if(item.getItemId()==R.id.login){
FragmentManager fragmentManager1 = getFragmentManager();
Fragment fragment1 =new Login();
fragmentManager1.beginTransaction()
.replace(R.id.container, fragment1)
.commit();
Y este otro en la clase Login():
public class Login extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.login, container, false);
return rootView;
}
}
Ocurre que cuando quiero usar un componente del xml login no puedo.
Si me podrias ayudar te lo agradeceria con el alma.
NO SE SI ESTO AYUDA PERO ES PARA UN PROYECTO DE LA UNI PARA LA SEMANA QUE MARTES PROXIMO Y ESTOY QUEDAO' AHI. GRACIAS :)
Disculpa este código funciona sobre Google maps v2?
ResponderEliminardebería
EliminarHola Ramíro tengo un problema y no encuentro cual es... Me sale este error:
ResponderEliminarat com.brayan.menu2.menu2.MainActivity.onCreate(MainActivity.java:78)
y al dar en el error es en esta parte del codigo:
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
No me lo marca como un error como tal más bien un warning
Method invocation ' getActionBar().setDisplayHomeAsUpEnabled(true)'may produce 'java.lang.NullException'
hola amigo ramiro tengo una pregunta se puede agregar un activyty al menu drawer ya encontre uno proyecto que lo tiene pero no se como le hizo si quieres te lo mando y lo checas ???? ok gracias espero tu respesta ademas ese contiene el nuevo material desing
ResponderEliminarHOLA TENGO UN PROBLEMA CON EL MENU CASE ME SALE UN ERROR EN ESTA PARTE : switch (position) espero me ayude :)
ResponderEliminarHombre buenas noches! Muy bueno el tutorial pero tengo un problema cuando corro me salen estos 4 errores>
ResponderEliminarError:(128, 36) error: cannot find symbol variable menu
Error:(140, 22) error: cannot find symbol variable action_settings
Error:(154, 27) error: cannot find symbol variable action_settings
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
No se su e puedas ayudar con esto!!
Gracias
Error:(128, 36) error: cannot find symbol variable menu
ResponderEliminarError:(140, 22) error: cannot find symbol variable action_settings
Error:(154, 27) error: cannot find symbol variable action_settings
hola ramiro tengo este mismo error gracias por responder
disculpe, a mi me sale el mismo error logro solucionarlo si si me podría decir como.
Eliminargracias
Me dio mucha risa cuando sale tu vieja en el video y la hechas :P
ResponderEliminaruna consulta, como haces para que te aparezca cuatro opciones o botones, porque comúnmente te aparecen 3
ResponderEliminarPero no eres él mismo que sale en los vídeos
ResponderEliminarme podrías ayudar a quitar el error que me sale en DrawerLayout y ActionBarDrawerToggle del MyActivity
ResponderEliminarUna Consulta, al menú lateral como muestras puedes agregarlo una forma de acordeones y dentro de ellas agruparlo los submenus.
ResponderEliminar