点击Listview后如何获得所有子项(位置明智)?

时间:2016-05-04 06:57:39

标签: android listview

这是我的MainActivity Listview监听器,

                        listView.setOnItemClickListener(new OnItemClickListener() {

                            @Override
                            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                                // TODO Auto-generated method stub

                                    DetailPackageVO pckg=expListAdapter.getItem(position);

                                    package_id=pckg.getId();    
                                    selectedPackageName=pckg.getBasic();
                                    itemTotalPrice=pckg.getTotal_amount();
                                    itemDiscount=pckg.getDiscount_percentage();
                                    itemAmountafterDiscount=pckg.getAmount_after_discount();

                                    System.out.println("::"+package_id+":"+selectedPackageName);

                            }
                        });
                    }

我的DetailPackageVO类,

public class DetailPackageVO {


    String id,basic, total_amount,amount_after_discount,discount_percentage;


    private ArrayList<ServiceVo> children;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getBasic() {
        return basic;
    }

    public void setBasic(String basic) {
        this.basic = basic;
    }

    public String getTotal_amount() {
        return total_amount;
    }

    public void setTotal_amount(String total_amount) {
        this.total_amount = total_amount;
    }

    public String getAmount_after_discount() {
        return amount_after_discount;
    }

    public void setAmount_after_discount(String amount_after_discount) {
        this.amount_after_discount = amount_after_discount;
    }

    public String getDiscount_percentage() {
        return discount_percentage;
    }

    public void setDiscount_percentage(String discount_percentage) {
        this.discount_percentage = discount_percentage;
    }

    public ArrayList<ServiceVo> getChildren() {
        return children;
    }

    public void setChildren(ArrayList<ServiceVo> children) {
        this.children = children;
    }
}

当点击listview项目的位置时,如何获取我在DetailPackageVO类ArrayList<ServiceVo>中保存的所有子项目。

提前致谢...

1 个答案:

答案 0 :(得分:0)

在DetailPackageVO中为children属性声明一个getter和setter,就像为所有其他属性声明的一样。

public void setChildren(ArrayList<ServiceVo> children) {
        this.children = children;
    }
    public ArrayList<ServiceVo> getChildren() {
        return this.children;
    }

在onItemClick中,您可以使用已声明的getter访问子节点:)

        listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {
            // TODO Auto-generated method stub

            DetailPackageVO pckg=expListAdapter.getItem(position);

            package_id=pckg.getId();  selectedPackageName=pckg.getBasic();
            itemTotalPrice=pckg.getTotal_amount();
            itemDiscount=pckg.getDiscount_percentage();
            itemAmountafterDiscount=pckg.getAmount_after_discount();

            ArrayList<ServiceVo> childItems = pckg.getChildren();
            for ( ServiceVo child : childItems) {
                System.out.println(child.childspropertyhere);
            }
            System.out.println("::"+package_id+":"+selectedPackageName);

        }
    });