展开式列表视图android的自定义子布局

卡尔提克·科兰吉(Karthik Kolanji)

我使用ExpandableListview...我能够将从Web服务检索的值设置为单个Textview子布局。现在需要Textviews从Web服务的子布局中设置两个不同的值,我能够使用单个textview,但是没有足够的想法来使用两个Textview

MainActivity.java

if (jsonStr != null) {
                    try {
                        JSONObject jsonObj = new JSONObject(jsonStr);

                        // Getting JSON Array node
                        cat = jsonObj.getJSONArray(All_link.TAG_NEWS);

                        String err = jsonObj.getString(All_link.TAG_ERROR);
                        Log.e("------>Error", String.valueOf(err));

                        if (err.equals("1")) {

                        } else {

                            // Adding child data
                            listDataHeader.add("Home");
                            listDataHeader.add("News Category");
                            listDataHeader.add("");
                            listDataHeader.add("My Favourites");
                            listDataHeader.add("Story-Photo-Video");
                            listDataHeader.add("About Us");
                            listDataHeader.add("Rate this App");
                            listDataHeader.add("Share this App");
                            listDataHeader.add("Settings");



                            // looping through All Contacts
                            for (int i = 0; i < cat.length(); i++) {
                                JSONObject c = cat.getJSONObject(i);

                                String cat_id = c.getString(All_link.TAG_CAT_ID);
                                String cat_name = c
                                        .getString(All_link.TAG_CAT_NAME);
                                String image_icon = c.getString("image_icon");

                                /*navDrawerItems.add(new NavDrawerItem(cat_name,
                                        image_icon, navMenuIcons.getResourceId(
                                                1, -1), true
                                                ,"1",id));*/


                                list_items.add(cat_name);                                                                                           

                                Log.e("list_items", "karlist "+list_items);
                            }
                            listDataChild.put(listDataHeader.get(0), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(1), list_items); // With child                         
                            listDataChild.put(listDataHeader.get(2), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(3), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(4), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(5), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(6), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(7), new ArrayList<String>()); // No child
                            listDataChild.put(listDataHeader.get(8), new ArrayList<String>()); // No child

ExpandableListAdapter.java

public class ExpandableListAdapter extends BaseExpandableListAdapter {

    private static final int[] EMPTY_STATE_SET = {};
    private static final int[] GROUP_EXPANDED_STATE_SET =
            {android.R.attr.state_expanded};
    private static final int[][] GROUP_STATE_SETS = {
        EMPTY_STATE_SET, // 0
        GROUP_EXPANDED_STATE_SET // 1
    };
    private Context _context;
    private List<String> _listDataHeader; // header titles
    // child data in format of header title, child title
    private HashMap<String, List<String>> _listDataChild;

    public ExpandableListAdapter(Context context, List<String> listDataHeader, HashMap<String, List<String>> listChildData) {
        this._context = context;
        this._listDataHeader = listDataHeader;
        this._listDataChild = listChildData;
    }

    @Override
    public Object getChild(int groupPosition, int childPosititon) {
        return this._listDataChild.get(this._listDataHeader.get(groupPosition))
                .get(childPosititon);
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }

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

        final String childText = (String) getChild(groupPosition, childPosition);

        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this._context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.drawer_list_item, null);
        }

        TextView txtListChild = (TextView) convertView.findViewById(R.id.title);

        TextView txtListChild_id = (TextView) convertView.findViewById(R.id.txt_id);

        txtListChild.setText(childText);
        return convertView;
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        Log.e("groupPosition", "kargr "+groupPosition);

            return this._listDataChild.get(this._listDataHeader.get(groupPosition))
                    .size();


    }

    @Override
    public Object getGroup(int groupPosition) {
        return this._listDataHeader.get(groupPosition);
    }

    @Override
    public int getGroupCount() {
        return this._listDataHeader.size();
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
            View convertView, ViewGroup parent) {
        String headerTitle = (String) getGroup(groupPosition);              

        if (convertView == null) {
            LayoutInflater infalInflater = (LayoutInflater) this._context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = infalInflater.inflate(R.layout.list_group, null);
        }

        View ind = convertView.findViewById( R.id.explist_indicator);
        if( ind != null ) {
            ImageView indicator = (ImageView)ind;
            if( getChildrenCount( groupPosition ) == 0 ) {
                indicator.setVisibility( View.INVISIBLE );
            } else {
                indicator.setVisibility( View.VISIBLE );
                int stateSetIndex = ( isExpanded ? 1 : 0) ;
                Drawable drawable = indicator.getDrawable();
                drawable.setState(GROUP_STATE_SETS[stateSetIndex]);
            }
        }


        TextView lblListHeader = (TextView) convertView
                .findViewById(R.id.lblListHeader);
        lblListHeader.setTypeface(null, Typeface.BOLD);
        lblListHeader.setText(headerTitle);

        return convertView;
    }

    @Override
    public boolean hasStableIds() {
        return false;
    }

    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
}
甜心ish

您需要使用Class来处理您的子数据:

public class YourData {
    public  String cat_name;
    public  String cat_id;


        public YourData(String id, String name) {
            cat_id= id;
            cat_name = name;
        }

    }

现在您的孩子列表将如下所示:

private List<YourData> _listDataHeader; // header titles

您可以将该列表填写为:

_listDataHeader.add(new YourData(id,name));

将适配器签名更改为:

 public ExpandableListAdapter(Context context, List<String> listDataHeader, HashMap<String, List<YourData>> listChildData) {
        this._context = context;
        this._listDataHeader = listDataHeader;
        this._listDataChild = listChildData;
    }

并在GetView中将其用作:

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

        final YourData childText = (YourData) getChild(groupPosition, childPosition);

        ....
        txtListChild.setText(childText.cat_name);
        txtListChild_id.setText(childText.cat_id);
        return convertView;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

展开式列表视图重复视图

来自分类Dev

展开式列表视图默认选择

来自分类Dev

刷新展开式列表视图

来自分类Dev

展开式列表视图不会折叠

来自分类Dev

刷新展开式列表视图

来自分类Dev

Android:展开式列表无法在屏幕上完全展开

来自分类Dev

子位置展开式列表视图返回错误的值?

来自分类Dev

某些孩子点击后,展开式列表视图崩溃

来自分类Dev

子位置展开式列表视图返回错误的值?

来自分类Dev

如何在Android展开式列表视图中允许单子选择?

来自分类Dev

列表视图的Android自定义布局

来自分类Dev

除了在可展开式列表视图Android中单击的父视图之外,是否可以禁用所有父视图?

来自分类Dev

长按可阻止展开式可扩展列表视图的展开

来自分类Dev

展开式列表视图-子视图和组视图之间的空间

来自分类Dev

如何在视图存根中为展开式布局设置不同的主题

来自分类Dev

如何在“选项卡式活动”中显示展开式布局的视图?

来自分类Dev

自定义子布局的可扩展ListView android

来自分类Dev

展开式清单

来自分类Dev

如何解决展开式列表视图中的职位变动问题

来自分类Dev

如何在展开式列表视图中创建一个月的组?

来自分类Dev

除了在可展开式列表视图Android中单击的父视图之外,是否有其他方法可以禁用所有父视图?

来自分类Dev

展开后,展开式列表项发生了变化

来自分类Dev

用于列表视图的Android自定义布局

来自分类Dev

android-展开式列表在viewpager片段中不起作用

来自分类Dev

无法隐藏自定义子视图

来自分类Dev

在展开式列表中将“标记”设置为“每个孩子”

来自分类Dev

java展开式JDialog

来自分类Dev

java展开式JDialog

来自分类Dev

android:自定义视图布局包装

Related 相关文章

  1. 1

    展开式列表视图重复视图

  2. 2

    展开式列表视图默认选择

  3. 3

    刷新展开式列表视图

  4. 4

    展开式列表视图不会折叠

  5. 5

    刷新展开式列表视图

  6. 6

    Android:展开式列表无法在屏幕上完全展开

  7. 7

    子位置展开式列表视图返回错误的值?

  8. 8

    某些孩子点击后,展开式列表视图崩溃

  9. 9

    子位置展开式列表视图返回错误的值?

  10. 10

    如何在Android展开式列表视图中允许单子选择?

  11. 11

    列表视图的Android自定义布局

  12. 12

    除了在可展开式列表视图Android中单击的父视图之外,是否可以禁用所有父视图?

  13. 13

    长按可阻止展开式可扩展列表视图的展开

  14. 14

    展开式列表视图-子视图和组视图之间的空间

  15. 15

    如何在视图存根中为展开式布局设置不同的主题

  16. 16

    如何在“选项卡式活动”中显示展开式布局的视图?

  17. 17

    自定义子布局的可扩展ListView android

  18. 18

    展开式清单

  19. 19

    如何解决展开式列表视图中的职位变动问题

  20. 20

    如何在展开式列表视图中创建一个月的组?

  21. 21

    除了在可展开式列表视图Android中单击的父视图之外,是否有其他方法可以禁用所有父视图?

  22. 22

    展开后,展开式列表项发生了变化

  23. 23

    用于列表视图的Android自定义布局

  24. 24

    android-展开式列表在viewpager片段中不起作用

  25. 25

    无法隐藏自定义子视图

  26. 26

    在展开式列表中将“标记”设置为“每个孩子”

  27. 27

    java展开式JDialog

  28. 28

    java展开式JDialog

  29. 29

    android:自定义视图布局包装

热门标签

归档