seguidos para pagina mas likes japoneses hashtags for focalmark español como buscar android android-listview android-button listitem buttonclick

android - para - Obtener la posición del elemento de vista de lista al hacer clic en el botón



tags japoneses para instagram (5)

// use "top" para obtener los artículos de vista de lista en la posición superior

// Posición superior de los elementos de ListView

int top; listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View lView, final int pos, long id) { top = lView.getTop(); if (top < 1) top = 1; } });

// O // Elementos de vista de lista posición superior En el método getView de CustomAdapter

int top; final View finalConvertView = convertView; convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { top = finalConvertView.getTop(); if (top < 1) top = 1; } });

Este es mi evento clickview listview:

lv1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long id) { Object o = lv1.getItemAtPosition(position); ItemDetails obj_itemDetails = (ItemDetails)o; Toast.makeText(ListViewImagesActivity.this, "You have chosen : " + " " + obj_itemDetails.getName(), Toast.LENGTH_LONG).show(); } });

Y este es mi evento de clic de botón:

btnNxt = (Button) findViewById(R.id.btnNext); btnNxt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //Here I need to get that position });

Ahora necesito obtener la posición del elemento de la vista de lista cliqueada ... He declarado la posición globalmente pero eso siempre me da la posición 1.

¿Alguien puede decirme cómo consigo la posición?


Ejecutas esto

btnNxt = (Button) findViewById(R.id.btnNext); btnNxt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //Here I need to get that position });

dentro del método getView? si es así, es muy fácil

btnNxt = (Button) findViewById(R.id.btnNext); btnNxt.setTag(position); btnNxt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { int position=(Integer)arg0.getTag(); });


Sé que estoy un poco tarde con la respuesta, pero ¿qué pasa con esto?

private OnClickListener myButtonClickListener = new OnClickListener() { @Override public void onClick(View v) { View parentRow = (View) v.getParent(); ListView listView = (ListView) parentRow.getParent(); final int position = listView.getPositionForView(parentRow); } };

en este caso, no necesita configurar etiquetas, etc.


Si está utilizando ViewHolder, asegúrese de usar setTag () de esta manera.

public View getView(int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = mLayoutInflater.inflate(R.layout.custom_row, parent, false); holder.btnNxt = (Button) convertView.findViewById(R.id.btnNext); holder.btnNxt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { int position=(Integer)arg0.getTag(); }); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.btnNxt.setTag(position); // <---- setTag() here return convertView; } private class ViewHolder { Button btnNxt; } }

Si configura TAG () antes de la línea setOnClickListener (), tendrá problemas al desplazarse por la vista de lista.


declara una variable global y en el método onItemClick () de lisview establece la posición de vista como el valor de la variable. ahora usa la misma variable en el método de clic del botón.

int global_position =0; // your global variable lv1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long id) { global_position =position; } }); btnNxt = (Button) findViewById(R.id.btnNext); btnNxt.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast.makeText(<context>,""+global_position,500).show(); });