android-在expandableListView的子级上单击了什么按钮

|| 你好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;
}
    

要回复问题请先登录注册