evento - metodos de listview android
Cómo manejar el clic de ListView en Android (8)
Debe configurar la vista inflada como "Hacer clic" y "poder escuchar eventos de clic" en su clase de adaptador método getView ().
convertView = mInflater.inflate(R.layout.list_item_text, null);
convertView.setClickable(true);
convertView.setOnClickListener(myClickListener);
y declare el oyente click en su ListActivity de la siguiente manera,
public OnClickListener myClickListener = new OnClickListener() {
public void onClick(View v) {
//code to be written to handle the click event
}
};
Esto solo es cierto cuando personaliza el Adaptador al extender BaseAdapter.
Consulte el ANDROID_SDK / samples / ApiDemos / src / com / example / android / apis / view / List14.java para obtener más información.
¿Cómo escucho el evento click en un ListView?
Esto es lo que tengo ahora
ListView list = (ListView)findViewById(R.id.ListView01);
...
list.setAdapter(adapter);
Cuando hago lo siguiente
list.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parentView, View childView,
int position, long id)
{
setDetail(position);
}
public void onNothingSelected(AdapterView parentView) {
}
});
Eso no parece hacer nada al hacer clic.
Y todos esos códigos viven dentro de una clase que amplía la Actividad.
En su vista de lista, use setOnItemClickListener
Esta solución es realmente minimalista y no estropea su código.
En su list_item.xml (¡NO listView!) Asigne el atributo android: onClick de la siguiente manera:
<RelativeLayout android:onClick="onClickDoSomething">
y luego en tu actividad llama a este método:
public void onClickDoSomething(View view) {
// the view is the line you have clicked on
}
Las dos respuestas anteriores son correctas: puede usar OnItemClickListener
.
Es bueno notar que la diferencia entre OnItemClickListener
y OnItemSelectedListener
, aunque suena sutil, es de hecho significativa, ya que la selección de elementos y el enfoque están relacionados con el modo táctil de su AdapterView
.
Por defecto, en el modo táctil, no hay selección y enfoque. Puede echar un vistazo here para obtener más información sobre el tema.
Primero, la clase debe implementar el click listener:
implements OnItemClickListener
Luego configure un oyente en ListView
yourList.setOnItemclickListener(this);
Y finalmente, crea el método clic:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Toast.makeText(MainActivity.this, "You Clicked at " +countries[+ position], Toast.LENGTH_SHORT).show();
}
puedes echar un vistazo y descargar el código here
Supongamos que el objeto ListView es lv, haga lo siguiente:
lv.setClickable(true);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Object o = lv.getItemAtPosition(position);
/* write you handling code like...
String st = "sdcard/";
File f = new File(st+o.toString());
// do whatever u want to do with ''f'' File object
*/
}
});
Tienes que usar setOnItemClickListener
alguien dijo.
El código debería ser así:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text or do whatever you need.
Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
}
});
Use la aplicación setOnItemClickListener () en su actividad. A continuación está la muestra.
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<> parent, View view, int position, long id)
{
// your code here.
}
});