En la entrada anterior realicé un menú contextual para los items de un ListView. El caso es que en mi aplicación quiero que haya una opción por defecto (que también está en el menú contextual) para las pulsaciones simples.
Encontré un post muy interesante que trataba el tema (en inglés), y otro post adaptado del anterior en español.
En mi caso lo he adaptado a mis necesidades, puesto que mis opciones del ListView se leen de base de datos.
A continuación mi código de ejemplo
private void initActivity(){ setContentView(R.layout.main); registerForContextMenu(getListView()); // Habilito click simple en la lista de elementos // Hack by http://stackoverflow.com/questions/4852307/listview-onclick-goes-to-a-new-activity //libreyextremo.blogspot.com.es/2012/03/tutorial-android-parte-13-navegacion.html ListView lv = (ListView)findViewById(android.R.id.list); final Intent activity = new Intent(this,CTaskActivity.class); OnItemClickListener myclickListView = new OnItemClickListener() { public void onItemClick(AdapterView parent, View view,int position, long id){ long id_proyecto = getIdProjectByPositionListView(position); activity.putExtra("id_proyecto", id_proyecto); startActivity(activity); } }; setListAdapter(new ArrayAdapter(context,android.R.id.list)); lv.setOnItemClickListener(myclickListView); // Cargo los proyectos en el sistema showAllProjects(); }
El código es bastante sencillo, simplemente se trata de hacer un OnItemClickListener persnalizado, asignarlo al ListView y después cargar los items. Ojo, que si se cargan antes los items no se mostrará nada en pantalla.
Por último, initActivity() es un método que llamo desde onCreate() de la actividad.
Saludos.
Hola, Carlos
ResponderEliminarMuchas gracias por tu comentario en mi blog y por tu consejo de usar syntax highlighter.
Llevaba tiempo buscando una herramienta asi y no había encontrado ninguna que fuese como yo queria. ¡Ahora podré mejorar los artículos y dejarlos como a mi me gusta!
Si te parece bien añadiré tu blog a la lista de los blogs que recomiendo.
Un saludo, Carlos
Ok, por mi perfecto.
EliminarTu blog me resultó muy útil y me ayudó con este tema.
Saludos.
Una pregunta, como puedo llamar a una actividad al momento de hacer click en el item del listview????
ResponderEliminarHola Jorge, precisamente eso es lo que está haciendo este ejemplo :D
EliminarEn final Intent activity = new Intent(this,CTaskActivity.class); he definido la actividad que se llamará.
startActivity(activity); <-- Es la línea que llama a la nueva actividad cuando se hace click sobre el item.
Saludos.