Получить позицию в ListView

Я использую ListView для отображения нескольких элементов. Мой row.xml, как показано ниже:

<TextView android:text="text" android:id="@+id/tvViewRow" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> <Button android:text="Click me!" android:id="@+id/BtnToClick" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="myClick"> </Button> 

И я определяю myClick в действии, как показано ниже:

 public void myClick (View v) { LinearLayout vwParentRow = (LinearLayout)v.getParent(); //How to get the position } 

Как узнать позицию, которую нужно нажать на кнопку? Позиция означает то же самое, что и метод onListItemClick.

 @Override protected void onListItemClick(ListView l, View v, int position, long id) { } 

Solutions Collecting From Web of "Получить позицию в ListView"

Пытаться

 public void DetailClick(View v) { ListView lv = getListView(); int position = lv.getPositionForView(v); } 

Вы можете попробовать это.

Шаг 1. В вашем пользовательском адаптере

 @Override public view getView(int position, View convertView, ViewGroup parent){ .......//Perform your logic convertView.findViewById(R.id.BtnToClick).setTag(position); return convertView; } 

Шаг 2: В прослушивании onclick

  public void myClick (View v) { LinearLayout vwParentRow = (LinearLayout)v.getParent(); position=(Integer) v.getTag(); } 

Вы также должны прочитать документацию для ListView и, возможно, даже взглянуть на доступное учебное пособие.

Знайте свою документацию.

Да, позиция в onListItemClick такая же, как позиция элемента, нажатого в списке.

Если я правильно понимаю ваш вопрос, у вас есть кнопка в каждой строке ListView , и вы хотите знать, какая строка получила нажатие кнопки. Как вы делаете setOnClickListener() на кнопке? Причина, по которой я задаю это, – если вы устанавливаете OnClickListener для каждой кнопки, вы уже знаете положение этой кнопки.