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
package Password.Principal; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ImageButton; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import usuario.Alerts; import usuario.ManejadorBD; import usuario.Password; import android.widget.CompoundButton.OnCheckedChangeListener; public Password[] datos = null; public Alerts alerta = new Alerts(); public AdaptadorPasswords contras=null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.principal); try{ if (c == null) else { if (c.moveToFirst()) { int pos = 0; int limite=c.getCount(); datos=new Password[limite]; do { int id=c.getInt(0); datos[pos] = new Password(id,sitio,user,contra,preg ,resp,corAlt); pos++; } while (c.moveToNext()); } else { } } if (this.datos == null) { alerta.showWarning("Registrar Passwords", } else { contras = new AdaptadorPasswords(this); } contrasenias.setAdapter(contras); ImageButton añadir = (ImageButton) findViewById(R.id.agregar); ImageButton borrar = (ImageButton) findViewById(R.id.eliminar); añadir.setOnClickListener(new OnClickListener() { // TODO Auto-generated method stub setResult(RESULT_OK, envio); startActivity(envio); } }); borrar.setOnClickListener(new OnClickListener() { @Override // TODO Auto-generated method stub } }); contrasenias.setOnItemClickListener(new OnItemClickListener() { @Override int arg2, long arg3) { // TODO Auto-generated method stub /*Intent envio=new Intent(Principal.this,Contras.class); Bundle contra=new Bundle(); contra.putInt("Id", datos[contrasenias.getId()].getId()); envio.putExtras(contra); setResult(RESULT_OK, envio); startActivity(envio); finish();*/ Toast msj = Toast .makeText( Principal.this, "se ha seleccionado una opcion"+contrasenias.getItemIdAtPosition(arg2), Toast.LENGTH_SHORT); msj.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); msj.show(); } }); // TODO Auto-generated catch block } } @SuppressWarnings("rawtypes") class AdaptadorPasswords extends ArrayAdapter { Activity context; @SuppressWarnings("unchecked") AdaptadorPasswords(Activity context) { super(context, R.layout.lista, datos); this.context = context; } final ViewHolder holder; if (item == null) { LayoutInflater inflater = context.getLayoutInflater(); item = inflater.inflate(R.layout.lista, null); holder = new ViewHolder(); holder.titulo = (TextView) item.findViewById(R.id.Titulo); holder.subtitulo = (TextView) item.findViewById(R.id.Subtitulo); holder.activacion = (CheckBox) item.findViewById(R.id.activacion); holder.activacion.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub Toast msj=Toast.makeText(Principal.this, "El usuario selecciona una opcion de la lista "+datos[position].getId(), Toast.LENGTH_SHORT); msj.show(); } }); item.setTag(holder); } else { holder = (ViewHolder) item.getTag(); } holder.titulo.setText(datos[position].getSitio()); holder.subtitulo.setText(datos[position].getUsuario()); return (item); } } static class ViewHolder { TextView titulo; TextView subtitulo; CheckBox activacion; } }