2014-10-01 48 views
1

嗨,我有一個SwipeListView有一個backview包含兩個按鈕。我遇到的問題是視圖是在我的listAdapter中創建的,所以如果我在按鈕上放置一個onClickListener,它只會獲取最後一個數組中的項目。所以我想要做的是檢測哪個按鈕已被按下在backview和陣列中的什麼位置。有誰知道如何做到這一點?Android的SwipeListView檢測按鈕按回來查看

具有前,正如你所看到的backview包含兩個按鈕

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
     > 

    <RelativeLayout 
      android:id="@+id/back" 
      android:tag="back" 
      android:background="@color/grey" 
      android:layout_width="match_parent" 
      android:layout_height="80dp" 
      > 

     <Button 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:id="@+id/delete_button" 
      android:text="delete" 
      android:background="@drawable/pink_sel" 
      android:layout_alignParentRight="true" 
      android:textColor="@color/white" 
      android:drawableTop="@drawable/ic_delete" 
      android:padding="12dp" 
      android:textSize="12sp" 
      android:gravity="center" 
     /> 

      <Button 
      android:layout_width="80dp" 
      android:layout_height="80dp" 
      android:id="@+id/mark_as_read" 
      android:text="mark as read" 
      android:background="@drawable/pink_sel_rev" 
      android:layout_toLeftOf="@+id/delete_button" 
      android:textColor="@color/white"  
      android:drawableTop="@drawable/ic_read" 
      android:paddingTop="10dp" 
      android:paddingLeft="10dp" 
      android:paddingRight="10dp" 
      android:textSize="12sp" 
      android:gravity="center" 


       /> 


    </RelativeLayout> 

    <RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="80dp" 
    android:background="@drawable/listitem" 
    android:id="@+id/front" 
    > 


    <ImageView 
     android:id="@+id/read" 
     android:layout_width="5dp" 
     android:layout_height="80dp" 
     android:layout_alignParentLeft="true" 
     android:background="@color/pink" 
    /> 

     <TextView 
     android:id="@+id/msg_date" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/msg_title" 
     android:layout_marginRight="20dp" 
     android:layout_alignParentRight="true" 
     android:ellipsize="end" 
     android:lines="1" 
     android:textColor="@color/darkgrey" 
     android:textSize="12sp" 
     android:paddingTop="10dp" 
     android:gravity="right"/> 

    <TextView 
     android:id="@+id/msg_title" 
     android:layout_width="250dp" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/read" 
     android:layout_marginLeft="20dp" 
     android:layout_toRightOf="@+id/read" 
     android:ellipsize="end" 
     android:lines="1" 
     android:textColor="@color/darkgrey" 
     android:textSize="20sp" 
     android:paddingTop="10dp"/> 

    <TextView 
     android:id="@+id/msg_subtitle" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/msg_title" 
     android:layout_alignLeft="@+id/msg_title" 
     android:textSize="14sp" 
     android:textColor="@color/darkgrey" 
     android:lines="2" 
     android:ellipsize="end" 
     android:paddingBottom="10dp" /> 

</RelativeLayout> 

</FrameLayout> 
在我的適配器

我在點擊監聽器設置一個用於視圖

markAsRead.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View arg0) { 
       Log.v("LOG","Array position = " + position); 
})}; 
後視圖我的繼承人版面項目的xml

我有這個問題雖然它確實檢測到點擊位置始終是數組中的最後一項,所以如果我有我的數組中的5個項目的位置,無論我點擊哪一個總是4,我需要它能夠得到我點擊的項目的位置,所以我可以r etrieve並編輯該位置的數據

+0

提供一些代碼和XML描述該問題,請 – cYrixmorten 2014-10-01 14:27:29

+0

內@cYrixmorten我有一個源代碼編輯 – iamlukeyb 2014-10-01 14:58:52

+0

是的工作謝謝 – iamlukeyb 2014-10-01 15:40:58

回答

1

您是否嘗試過使用setTag?

也就是說,在getView適配器問題

markAsRead.setTag(TheObjectYouWantToEdit) 

,然後聽衆的onClick

TheObjectYouWantToEdit edit = arg0.getTag() 
+0

我不解決這個問題lem plz討論更多這個問題 – 2015-03-14 18:03:00