频道管理(我自己的你们看不懂)

来源:互联网 发布:啊哈,算法 豆瓣 编辑:程序博客网 时间:2024/05/16 16:21

判断

 //取出标识(onActivityResult)确认是否是第一次点击                boolean addlog = sp.getBoolean("addlog", true);                //如果不是                if(!addlog){                    //直接取出onActivityResult返回存储在sp中的JSON                    String addmsg = sp.getString("addmsg", null);                    //解析JSON字符串                    list2 = PindaoJson(addmsg);                    //调用方法将上下文和list传进去(详情可点进源码查看)                    ChannelActivity.startChannelActivity(this,list2);                }else{                    //是第一次点击                    //判断beanList是否为空                    if(beanList.size() == 0) {                        //取出原始数据遍历存入ChannelBean bean对象中                        for (int i = 0; i < typeAll.length; i++) {                            ChannelBean bean;                            //全部存为true                            if (i < typeAll.length) {                                bean = new ChannelBean(typeAll[i], true);                            } else {                                bean = new ChannelBean(typeAll[i], false);                            }                            //添加进集合                            beanList.add(bean);                        }                    }                    //调用方法将上下文和list传进去(详情可点进源码查看)                    ChannelActivity.startChannelActivity(this,beanList);                }
返回

//回调方法    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);        //存一个标识用来判断是否回调过该方法        sp.edit().putBoolean("addlog",false).commit();        //取出回传数据        String json = data.getStringExtra("json");        //存一个标识用来存入返回的json值        sp.edit().putString("addmsg",json).commit();        System.out.println("============json--"+json);        //解析json字符串        list2 = PindaoJson(json);        //加载横条        inittwohor(list2);    }    //添加横条的方法    private void inittwohor(List<ChannelBean> list3) {        //重置list集合(typeAll2存放名字)(typeId2存放类型)        typeAll2 = new ArrayList<>();        typeId2 = new ArrayList<>();        //第二次横条加载        for (int i = 0; i < list3.size(); i++) {            //如果list3是选中状态并且对应的Name不为空            if(list3.get(i).isSelect() &&  !TextUtils.isEmpty(list3.get(i).getName())){                //新的typeAll2集合存放名字                typeAll2.add(list3.get(i).getName());            }        }        //利用冒泡排序方法找出名字对应的type值        for (int i = 0; i < typeAll2.size(); i++) {            for (int j = 0; j < typeAll.length; j++) {                String name = typeAll[j];                if(name.equals(typeAll2.get(i)) && !TextUtils.isEmpty(typeId[j])){                    //typeId2[num2] = typeId[i];                    typeId2.add(typeId[j]);                }            }        }        List<CategoryBean> list = new ArrayList<>();        for (int i = 0; i < typeAll2.size(); i++) {            CategoryBean bean = new CategoryBean();            bean.name = typeAll2.get(i);            bean.id = typeId2.get(i);            list.add(bean);        }        //创建Fragment类型集合        List<Fragment> listfragment = new ArrayList<>();        //for循环对应        for (int i = 0; i <typeId2.size() ; i++) {            //将TopFragment实例化出来            Fragment1 top=new Fragment1();            //初始化Bundle(存储数据用和map相似)            Bundle bundle=new Bundle();            bundle.putString("type",typeId[i]);            //activity之间传输数据用            top.setArguments(bundle);            //添加相应的Fragment            listfragment.add(top);        }        hor_scollTabhost.diaplay(list, listfragment);    }    private List<ChannelBean> PindaoJson(String json) {        //解析json        Gson gson = new Gson();        List<ChannelBean>  list2 = gson.fromJson(json,new TypeToken<List<ChannelBean>>(){}                .getType());        //返回一个泛型是ChannelBean的list集合        return list2;    }


原创粉丝点击