簡體   English   中英

android - 在expandableListView的子項上單擊了什么按鈕

[英]android - what button is clicked on expandableListView's child

你好everibody,謝謝你讀了我。

我希望自己能正確表達,因為我是法國人...如果你不明白,請告訴我。

我有一個expandableListActivity,並且,使用適配器,我已經放了孩子。 每個孩子都有兩個按鈕,可以減少或增加一個數字(命名數量)。 我很難知道,當按下按鈕時,孩子會關注什么。 請注意,按下按鈕時,相關的孩子並不總是選中的孩子。

我已經看過這個頁面http://www.geekmind.net/2009/11/android-custom-list-item-with-nested.html感謝Andikki在這個頁面上的回答在expandablelistview中創建按鈕我已經部分解決了問題。

實際上,標簽的解決方案似乎解決了問題,但事實並非如此。 當我快速點擊按鈕時,我有一個錯誤。 所有工作,但如果我快速點擊一個按鈕,例如在最短的時間內20次,點擊的按鈕並不總是正確檢測到。

在我的情況下,我想增加或減少孩子的數量“數量”。 當我點擊加號按鈕或減號按鈕時,它可以正常工作。 但是,當我快速點擊同一個按鈕時,發生的數量增加或減少的數量不是好孩子的數量!

我把你的代碼如下,如果你想要更多,請告訴我。 這是child_row

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<TextView
    android:id="@+id/childname"
    android:textStyle="italic"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
android:gravity="center_vertical"
    android:maxWidth="150dip"
    android:singleLine="false"/>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical|right"
        android:gravity="center_vertical|right">

    <ImageView
        android:id="@+id/decrease_quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/minus"
        android:background="@color/transparent"
        android:clickable="true"
        android:onClick="decreaseQuantity"/>

    <TextView
            android:id="@+id/quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"/>

    <ImageView
        android:id="@+id/increase_quantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/plus"
        android:background="@color/transparent"
        android:clickable="true"
        android:onClick="increaseQuantity"/>

</LinearLayout>

</LinearLayout>

這是我的適配器中getChildView方法的摘錄:

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {

    View v = null;

    if (convertView != null){
        v = convertView;
    }
    else{
        v = inflater.inflate(R.layout.child_row, parent, false); 
    }

    Product product = (Product)getChild(groupPosition,childPosition);

    ImageView decreaseQuantityImageView = (ImageView)v.findViewById(R.id.decrease_quantity);
decreaseQuantityImageView.setTag(groupPosition + "/" + childPosition);

TextView quantity = (TextView)v.findViewById(R.id.quantity);
quantity.setText(String.valueOf(product.getQuantity()));

ImageView increaseQuantityImageView = (ImageView)v.findViewById(R.id.increase_quantity);
increaseQuantityImageView.setTag(groupPosition + "/" + childPosition);

// I do that for all ImageView clickable of child   

return v;

}

這里是我的活動的摘錄(擴展ExpandableListActivity)與getTag()

public void increaseQuantity(View v){

    ImageView increaseQuantityImageView = (ImageView)v.findViewById(R.id.increase_quantity);
    String positions = (String) increaseQuantityImageView.getTag();
    String tabOfPositions[] = positions.split("\\/");

    Product product = (Product)this.retailerAdapter.getChild(Integer.parseInt(tabOfPositions[0]), Integer.parseInt(tabOfPositions[1]));
    product.increaseQuantity();

    this.retailerAdapter.notifyDataSetChanged();

}

我不確定,但我認為我已經解決了這個問題。 目前,我不再看到這個錯誤了。

這是“解決方案”(如果有人可以解釋我......)。

我刪除了以下代碼:

if (convertView != null){
    v = convertView;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM