2011-12-17 2 views
0

В настоящее время у меня естьКак получить позицию ListItem?

<ListView> 
<TextView> 
</ListView> 

и следующий метод отлично работает

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

Я планирую изменить макет в

<ListView> 
<TextView> 
<Button> 
</ListView> 

public void buttonListener(View v) 

Есть простой способ, я могу извлечь ListView l и int позицию внутри прослушивателя кнопок?

Спасибо!

+2

Ваш вопрос и ваш код, звук основнойознакомьтесь с некоторыми основными учебными пособиями для создания пользовательского списка. – user370305

+0

Благодарим за комментарий. Я просматривал большинство учебников, и все те, с которыми я столкнулся, используют onListItemClick в качестве решения. На самом деле никто не показывает, как это можно сделать с помощью кнопки внутри ListItem. –

ответ

2

Объявите вашу кнопку слушателя внутри

@Override 
public View getView(int position, View convertView, ViewGroup parent) 

из списка адаптера.

Там вы можете получить доступ к позиции и списку.

+0

довольно близко к тому, что я сделал, чтобы решить проблему. Спасибо! –

0

В адаптере дать кнопку тег с позиции Следующая findViewById (кнопка) и GetTag(), чтобы выяснить позицию

Не знаю, если это лучший способ, но это будет Работа!

Кстати, читать на ListItems с кнопками, имеют некоторые проблемы с onClickListeners

+0

закончил создание customCursorAdapter и использовал setTag, когда я bindView –

0

Вы можете добавить id в список (например, myView) и из прослушивателя кнопок, вы получите объект просмотра списка и получите все его свойства.


Смотрите ниже код:

ListView listView= (ListView) YourPage.findViewById(R.id.myView); 
0
listview.setOnItemClickListener(new ListView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 

      //here arg2 is the position of particular listview item 


      } 
     }); 
+0

это не listitemclick, а 'listItemButtonClick' – vanleeuwenbram

0

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

Sai geetha Listview

0
YTou should try this code: 

    @Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    // Get the item that was clicked 
    Object o = this.getListAdapter().getItem(position); 
    String keyword = o.toString(); 
    Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_SHORT) 
      .show(); 

} 
}); 

Если вы хотите больше, увидеть, как вы проблемы, нажмите ниже ссылки

Android ListView: get data index of visible item

http://www.androidpeople.com/android-listview-onclick

http://developer.android.com/reference/android/widget/ListView.html

+0

, это именно то, что у меня есть сейчас, и оно работает. Я создаю кнопку внутри каждого элемента списка.проблема в том, что у меня нет доступа к listview l и int позиции внутри кнопки прослушивателя ... извините, если я не очень хорошо это сказал –

Смежные вопросы