2013-08-02 3 views
0

Я новичок в Android. У меня есть ListActivity, которые включают ListView. Элемент в ListView настроен. Xml-макет:Как слушать каждую кнопку в ListView в Android

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/item" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="5dp" 
     android:paddingTop="5dp" 
     android:textSize="22sp" ></TextView> 

    <TextView 
     android:id="@+id/item2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="10dp" 
     android:paddingLeft="10dp" 
     android:paddingTop="5dp" /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="right" > 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:background="@null" 
      android:onClick="favoriteOnClick" 
      android:src="@drawable/favorite_logo" /> 


    </RelativeLayout> 

</LinearLayout> 

У этого есть изображениеButton.
Когда кнопка была нажата. Я хочу получить, какая кнопка была нажата (значит, мне нужно получить, какой элемент ListView).

+0

и будет получить идентификатор элемента, отображаемый в ListView? Разве это – KOTIOS

+0

Если вы хотите использовать 'метод favoriteOnClick' для получения ImageButton нажмите затем в GetView() из пользовательского адаптера просто установить тег из ImageButton с позицией Элемент списка затем извлекает его в 'favoriteOnClick'using' getTag() '. – user370305

ответ

2

Ну, вы можете справиться с этим в своем адаптере ListView.

В способе: public View getView(final int position, View convertView, ViewGroup parent) вы можете десериализовать свой ImageButton, а затем установить OnClickListener. Метод getView() дает вам позицию

2

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

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageButton ib = ... 
    ib.setTag(new Integer(position)); 
    ib.setOnClickListener(myListener); 
} 

.... 

private OnClickListener myListener = new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     int position = v.getTag(v.intValue()); 
    } 
};