2017-05-01 99 views
-1

我需要檢測imageview上的onclick事件,並獲取從遊標獲取行的位置,但我不知道如何。 我正試圖修改https://github.com/Odoo-mobile/framework和購物車應用程序。如何獲取listview在imageview點擊的位置?

,我需要檢測到點擊事件的佈局視圖的代碼是:

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


    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="#fff" 
     android:orientation="horizontal" 
     android:padding="10dp" > 

     <!-- ListRow Left sied Thumbnail image --> 

     <LinearLayout 
      android:id="@+id/thumbnail" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_marginRight="7dip" 
      android:padding="2dip" > 

      <odoo.controls.BezelImageView 
       android:id="@+id/image_small" 
       android:layout_width="40dp" 
       android:layout_margin="@dimen/default_8dp" 
       app:maskDrawable="@drawable/circle_mask" 
       android:layout_height="40dp" /> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_toRightOf="@+id/thumbnail" 
      android:textAppearance="?android:textAppearanceMedium" 
      android:textColor="@color/body_text_1"/> 

      <LinearLayout 
       android:id="@+id/cart_plus_minus_layout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/name" 
       android:orientation="horizontal" > 

       <TextView 
        android:id="@+id/list_price" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal|center_vertical" 
        android:layout_marginLeft="60dip" 
        android:layout_weight="0.23" 
        android:paddingRight="5dip" 
        android:textAppearance="?android:textAppearanceMedium" 
        android:textColor="@color/android_red" /> 

       <ImageView 
        android:id="@+id/cart_minus_img" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/ic_action_minuscircle" /> 

       <TextView 
        android:id="@+id/cart_product_quantity" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical|center_horizontal" 
        android:paddingLeft="15dip" 
        android:paddingRight="15dip" 
        android:text="0" 
        android:textSize="18dip" 
        android:textStyle="bold" /> 

       <ImageView 
        android:id="@+id/cart_plus_img" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/ic_action_addcircle" /> 
      </LinearLayout> 
     </RelativeLayout> 
</LinearLayout> 

圖像我需要檢測的點擊是:@ + ID/cart_plus_img @ + ID/cart_minus_img

當行是單擊捕獲事件的功能是:

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    ODataRow row = OCursorUtils.toDatarow((Cursor) mAdapter.getItem(position)); 
    //AddToCart(row); 
    loadActivity(row); 
} 

我需要的是調用loadActivity(行)當用戶單擊行,但是當點擊@ + ID/cart_plus_img @ + ID/cart_minus_img調用另一個函數,但與該行參數

任何幫助是thanksfull

回答

1

使用View Tag屬性

 ImageView imgMinus = (ImageView)view.findViewById(R.id.cart_minus_img); 
     ImageView imgPlus = (ImageView)view.findViewById(R.id.cart_plus_img); 

     imgMinus.setTag(position); 
     imgPlus.setTag(position); 

     imgMinus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Integer position = (Integer) v.getTag(); 
       ... 
      } 
     }); 

     imgPlus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Integer position = (Integer) v.getTag(); 
       ... 
      } 
     }); 
相關問題