Foros del Web » Programando para Internet » Android »

problemas para seleccionar un elemento de un listview

Estas en el tema de problemas para seleccionar un elemento de un listview en el foro de Android en Foros del Web. Tengo un listview parecido a la imagen, donde el checbox lo quiero usar para eliminar varios elementos, el problema q tengo es q no puedo ...
  #1 (permalink)  
Antiguo 08/06/2011, 10:19
 
Fecha de Ingreso: noviembre-2008
Mensajes: 49
Antigüedad: 16 años
Puntos: 4
Pregunta problemas para seleccionar un elemento de un listview



Tengo un listview parecido a la imagen, donde el checbox lo quiero usar para eliminar varios elementos, el problema q tengo es q no puedo selecccionar el elemento del listview para q me muestre otra actividad sin necesidad de activar el checkbox, lo estado intentando con el setOnItemClickListener y el setOnItemLongClickListener, pero hasta ahorita no me han funcionado, solo me ha funcionado los eventos de setOnTouchListener y setOnItemSelectedListener.

aqui dejo la clase q ocupo para crear el list view, espero me puedan ayudar:
Código JAVA:
Ver original
  1. package Password.Principal;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.database.Cursor;
  6. import android.os.Bundle;
  7. import android.view.Gravity;
  8. import android.view.LayoutInflater;
  9. import android.view.MotionEvent;
  10. import android.view.View;
  11. import android.view.View.OnTouchListener;
  12. import android.view.ViewGroup;
  13. import android.view.View.OnClickListener;
  14. import android.widget.AdapterView;
  15. import android.widget.AdapterView.OnItemClickListener;
  16. import android.widget.AdapterView.OnItemLongClickListener;
  17. import android.widget.AdapterView.OnItemSelectedListener;
  18. import android.widget.ArrayAdapter;
  19. import android.widget.CheckBox;
  20. import android.widget.CompoundButton;
  21. import android.widget.ImageButton;
  22. import android.widget.ListView;
  23. import android.widget.TextView;
  24. import android.widget.Toast;
  25. import usuario.Alerts;
  26. import usuario.ManejadorBD;
  27. import usuario.Password;
  28. import android.widget.CompoundButton.OnCheckedChangeListener;
  29.  
  30. public class Principal extends Activity {
  31.  
  32.     public Password[] datos = null;
  33.     public Alerts alerta = new Alerts();
  34.     public AdaptadorPasswords contras=null;
  35.  
  36.     /** Called when the activity is first created. */
  37.     @Override
  38.     public void onCreate(Bundle savedInstanceState) {
  39.         super.onCreate(savedInstanceState);
  40.         setContentView(R.layout.principal);    
  41.         try{
  42.             ManejadorBD cnx = new ManejadorBD(Principal.this, "passwordsBD", 1, 'r');
  43.             Cursor c = cnx.consultar("SELECT * FROM passwords", null);
  44.             if (c == null)
  45.                 alerta.showWarning("Error en la Aplicación", "Se ha producido un error", Principal.this);
  46.             else {
  47.                 if (c.moveToFirst()) {
  48.                     int pos = 0;
  49.                     int limite=c.getCount();
  50.                     datos=new Password[limite];
  51.                     do {                       
  52.                         int id=c.getInt(0);
  53.                         String sitio=c.getString(1);
  54.                         String user=c.getString(2);
  55.                         String contra=c.getString(3);
  56.                         String preg=c.getString(4);
  57.                         String resp=c.getString(5);
  58.                         String corAlt=c.getString(6);
  59.                         datos[pos] = new Password(id,sitio,user,contra,preg ,resp,corAlt);                     
  60.                         pos++;
  61.                     } while (c.moveToNext());
  62.                 } else {
  63.                     alerta.showWarning("Error en la Aplicación", "Se ha producido un error", Principal.this);
  64.                 }
  65.             }          
  66.             if (this.datos == null) {
  67.                 alerta.showWarning("Registrar Passwords",
  68.                         "Debe registrar la información", Principal.this);
  69.             } else {
  70.                 contras = new AdaptadorPasswords(this);            
  71.             }
  72.            
  73.             final ListView contrasenias = (ListView) findViewById(R.id.contrasenias);
  74.             contrasenias.setAdapter(contras);
  75.  
  76.             ImageButton añadir = (ImageButton) findViewById(R.id.agregar);
  77.             ImageButton borrar = (ImageButton) findViewById(R.id.eliminar);
  78.  
  79.             añadir.setOnClickListener(new OnClickListener() {
  80.  
  81.                 public void onClick(View v) {
  82.                     // TODO Auto-generated method stub
  83.                     Intent envio = new Intent(Principal.this, NewPassword.class);
  84.                     setResult(RESULT_OK, envio);
  85.                     startActivity(envio);
  86.                 }
  87.             });
  88.  
  89.             borrar.setOnClickListener(new OnClickListener() {
  90.  
  91.                 @Override
  92.                 public void onClick(View v) {
  93.                     // TODO Auto-generated method stub
  94.  
  95.                 }
  96.             });
  97.        
  98.            
  99.             contrasenias.setOnItemClickListener(new OnItemClickListener() {
  100.  
  101.                 @Override
  102.                 public void onItemClick(AdapterView<?> arg0, View arg1,
  103.                         int arg2, long arg3) {
  104.                     // TODO Auto-generated method stub
  105.                     /*Intent envio=new Intent(Principal.this,Contras.class);
  106.                     Bundle contra=new Bundle();
  107.                     contra.putInt("Id", datos[contrasenias.getId()].getId());
  108.                     envio.putExtras(contra);
  109.                     setResult(RESULT_OK, envio);
  110.                     startActivity(envio);
  111.                     finish();*/
  112.                     Toast msj = Toast
  113.                     .makeText(
  114.                             Principal.this,
  115.                             "se ha seleccionado una opcion"+contrasenias.getItemIdAtPosition(arg2),
  116.                             Toast.LENGTH_SHORT);
  117.             msj.setGravity(Gravity.CENTER_HORIZONTAL,
  118.                     0, 0);
  119.             msj.show();
  120.                 }
  121.             });
  122.         }catch(Exception e){
  123.             alerta.showWarning("Error en la Aplicación", "Se ha producido un error", Principal.this);
  124.         } catch (Throwable e) {
  125.             // TODO Auto-generated catch block
  126.             alerta.showWarning("Error en la Aplicación", "Se ha producido un error", Principal.this);
  127.         }
  128.        
  129.     }
  130.  
  131.     @SuppressWarnings("rawtypes")
  132.     class AdaptadorPasswords extends ArrayAdapter {
  133.  
  134.         Activity context;
  135.  
  136.         @SuppressWarnings("unchecked")
  137.         AdaptadorPasswords(Activity context) {
  138.             super(context, R.layout.lista, datos);
  139.             this.context = context;
  140.         }
  141.  
  142.         public View getView(final int position, View convertView, ViewGroup parent) {
  143.             View item = convertView;
  144.             final ViewHolder holder;
  145.  
  146.             if (item == null) {
  147.                 LayoutInflater inflater = context.getLayoutInflater();
  148.                 item = inflater.inflate(R.layout.lista, null);
  149.  
  150.                 holder = new ViewHolder();
  151.                 holder.titulo = (TextView) item.findViewById(R.id.Titulo);
  152.                 holder.subtitulo = (TextView) item.findViewById(R.id.Subtitulo);
  153.                 holder.activacion = (CheckBox) item.findViewById(R.id.activacion);
  154.                
  155.                 holder.activacion.setOnCheckedChangeListener(new OnCheckedChangeListener() {
  156.                    
  157.                     @Override
  158.                     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  159.                         // TODO Auto-generated method stub
  160.                         Toast msj=Toast.makeText(Principal.this, "El usuario selecciona una opcion de la lista "+datos[position].getId(), Toast.LENGTH_SHORT);
  161.                         msj.show();
  162.                     }
  163.                 });
  164.                
  165.                 item.setTag(holder);
  166.             } else {
  167.                 holder = (ViewHolder) item.getTag();
  168.             }
  169.  
  170.             holder.titulo.setText(datos[position].getSitio());
  171.             holder.subtitulo.setText(datos[position].getUsuario());
  172.  
  173.             return (item);
  174.         }
  175.     }
  176.  
  177.     static class ViewHolder {
  178.         TextView titulo;
  179.         TextView subtitulo;
  180.         CheckBox activacion;
  181.     }
  182. }

Etiquetas: listview, seleccionar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:19.