0

我有两种布局。我想将它们添加到 ExpandableListView 编程中。我曾尝试使用 ViewHolder 设置标签。但是当我尝试获取标签时总是 NullpointException。这是我的代码:

        SeekBarHolder sh=null;
        TickHolder th=null;
        if(convertView==null){
            switch((Integer)childData.get(groupPosition).get(childPosition).get("type")){
            case ProtocolConst.EXPANDABLE_CHILD_TYPE_SEEKBAR:
                sh=new SeekBarHolder();
                convertView=inflater.inflate(R.layout.fragment_left_listview_child_seekbar_item, null);
                sh.text=(TextView)convertView.findViewById(R.id.Left_ExpandableListView_Child_SeekBar_TextView);
                sh.seekbar=(SeekBar)convertView.findViewById(R.id.Left_ExpandableListView_Child_SeekBar_SeekBar);
                convertView.setTag(sh);

            case ProtocolConst.EXPANDABLE_CHILD_TYPE_TICK:
                th=new TickHolder();
                convertView=inflater.inflate(R.layout.fragment_left_listview_child_seekbar_item, null);
                th.text=(TextView)convertView.findViewById(R.id.Left_ExpandableListView_Child_Tick_TextView);
                th.tick=(ImageView)convertView.findViewById(R.id.Left_ExpandableListView_Child_Tick_ImageView);
                convertView.setTag(th);

            }}else{
           switch((Integer)childData.get(groupPosition).get(childPosition).get("type")){
            case ProtocolConst.EXPANDABLE_CHILD_TYPE_SEEKBAR:
                sh=(SeekBarHolder)convertView.getTag();
                break;
            case ProtocolConst.EXPANDABLE_CHILD_TYPE_TICK:
                th=(TickHolder)convertView.getTag();
                break;
            }
}
4

2 回答 2

1

您应该为您的 addapter 实施其他方法。适配器以其他方式使用不同的布局。使用方法 getViewTypeCount() { 告诉适配器您将使用多少个视图,并使用 getItemViewType(int position) 在 getViewMethod 中的视图之间切换。

另外,对于 ExpadnableListView,您应该使用其他方法,这些方法允许您为列表添加其他布局。

于 2013-09-23T10:59:42.283 回答
0

如果你正在使用,ExpandableListView那么你应该使用BaseExpandableListAdapter它有方法 getChildView (int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)getGroupView (int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)允许你单独膨胀组和孩子的布局。这是其中的教程之一

于 2013-09-23T10:58:46.023 回答