在日志中获取json响应,但无法使用retorfit对标头和子级获取可扩展列表视图的列表

问题描述

我是android新手,如果我缺少什么,请帮助我。我正在尝试使用翻新的可扩展列表视图显示列表。我在log-cat中得到所有响应,但列表未显示。我已经搜索了所有仍无法显示标题和子项列表的东西。有2个脚本调用一个用于标题列表,另一个用于子列表,将显示在展开的标题列表视图中。

public class AllVideosFragment extends Fragment implements
        OnCheckedchangelistener,OnClickListener {

    public static ExpandableSwipeListView listView;
    private expandablelistadapter adapter;
    public static List<String> listDataHeader;
    public static List<Integer> listDataHeaderIds;
    public static List<Integer> listDataHeaderIdsDuplicate;
    public static List<String> listDataHeaderDuplicate;

    public static HashMap<String,List<Cartoon>> listDataChild;

    public static HashMap<String,List<Cartoon>> listDataChildEnglish;


    public static HashMap<String,List<Cartoon>> listDataChildfrench;

    ProgressDialog progressDialog;
    private ProgressDialog mprocessingdialog;

    Context context;
    private int _header_layout;
    private int _item_layout;
    // AddFavorites addFavorites;

    expandablelistadapter listadapter;
    ExpandableListView expListView;
    ExpandableListView lv;
    Context con;

    List<String> listDataHeaderDuplicateNew = new ArrayList<String>();
    HashMap<String,List<Cartoon>> listDataChildNew1 = new HashMap<String,List<Cartoon>>();
    private HashMap<String,List<String>> listDataChildNew;
    LinearLayout ll_all = null,ll_english = null,ll_french = null;
    //    RadioButton rb_all = null,rb_english = null,rb_french = null;
    CheckBox rb_all = null,rb_french = null;
    private View rootView;
    Dialog myDialog;

    boolean isListOpen = false;

    public static int prevIoUsGroup = -1;
    int openItem = -1;

  

    CatList catList;
    PackList packList;
    LanguageList languageList;
    Cartoon cartoon;

    RombPlu rombPlu;
    VersionData versionData;



    ArrayList<CatList> headersList;
    ArrayList<Cartoon> childList;

    static int langSelector = 0;
    ConnectionDetector connectionDetector;
    SearchManager searchManager;
    public SearchView searchView;



    Timer timer;
    private static final scheduledexecutorservice worker =
            Executors.newSingleThreadScheduledExecutor();

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getList();
    }

    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
        rootView = inflater.inflate(R.layout.all_videos_layout,container,false);
        LT.myLog("TAG","onCreate");
        setHasOptionsMenu(true);


       // new  prepareListData().execute();
        // init();
       // getList();

        context = getActivity();
 
        connectionDetector = new ConnectionDetector(context);


        //edtd
        catList = new CatList();
        packList = new PackList();
        languageList = new LanguageList();
        cartoon = new Cartoon();
        rombPlu = new RombPlu();
        versionData = new VersionData();

        headersList = new ArrayList<CatList>();
        childList = new ArrayList<Cartoon>();

        listView = (ExpandableSwipeListView) rootView
                .findViewById(R.id.expandableListView1);

        listView.setTextFilterEnabled(true);

        listView.setGroupIndicator(null);

        listDataHeader = new ArrayList<String>();
        listDataChildEnglish = new HashMap<String,List<Cartoon>>();
        listDataHeaderDuplicate = new ArrayList<String>();
        listDataHeaderIds = new ArrayList<Integer>();
        listDataHeaderIdsDuplicate = new ArrayList<Integer>();
        listDataChild = new HashMap<String,List<Cartoon>>();


        createHeaders();
        createChilds();
        adapter = new expandablelistadapter(getActivity(),listDataHeaderDuplicate,listDataChild,R.layout.header_list,R.layout.custom_list_child,addFavorites);

        // MyUtils.videoUpdateFlag = 0;





        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //    Toast.makeText(context,"TIMER",Toast.LENGTH_SHORT).show();

                        new CategoryTitleAsyncTask(context,catList,packList,languageList,responceListener).execute();

                        //edtd
                        new VideoDataAsyncTask(context,cartoon,rombPlu,versionData,responceListener)
                                .execute();

                    }
                });
//                    db,//                    Toast.makeText(context,Toast.LENGTH_SHORT).show();

            }
        },1000 * 60 * 1);

        // adapter = new expandablelistadapter(context);

        adapter.enableExpandableSwipeListView(listView);

        adapter.setonDeleteButton(new expandablelistadapter.DeleteListener() {
            @Override
            public boolean onDeleteItem(int position) {
                return true;
            }
        });
        listView.setAdapter(adapter);

        listView.setSwipeListViewListener(new BaseSwipeListViewListener() {

            @Override
            public void onStartOpen(int position,int action,boolean right) {
                super.onStartOpen(position,action,right);
                listView.resetAll();
                if (openItem > -1)
                    listView.closeAnimate(openItem);

                openItem = position;
            }

            @Override
            public void onClosed(int position,boolean fromright) {
                // listView.closeAnimate(openItem);

                super.onClosed(position,fromright);
            }

            @Override
            public void ondismiss(int[] reverseSortedPositions) {
                listView.resetAll();
                // prepareLastScrollPos();
                super.ondismiss(reverseSortedPositions);
                for (int pos : reverseSortedPositions) {
                    // get group and child ids
                    int[] conversion = listView.getGroupAndChildPositions(pos);
                    String header = listDataHeader.get(conversion[0]);
                    listDataChildNew.get(header).remove(conversion[1]);
                    if (listDataChildNew.get(header).size() == 0) {
                        listDataChildNew.remove(header);
                        listDataHeader.remove(conversion[0]);
                    }
                    // listViewEventRequests.resetItem(pos);
                }
                adapter.notifyDataSetChanged();
            }
        });
        listView.setClickable(true);

        // filter data settings

        listView.setonGroupExpandListener(new OnGroupExpandListener() {

            // int prevIoUsGroup = -1;

            @Override
            public void onGroupExpand(int groupPosition) {

                if (groupPosition != prevIoUsGroup) {

                    listView.collapseGroup(prevIoUsGroup);
                    listView.cloSEOpenedItems();
//                  listView.closeAnimate(prevIoUsGroup);


                    prevIoUsGroup = groupPosition;
                    listView.smoothScrollToPosition(prevIoUsGroup);
//                  listView.smoothScrollToPosition(prevIoUsGroup,listView.getVerticalScrollbarPosition() );
                }
            }

        });

        listView.setonGroupCollapseListener(new OnGroupCollapseListener() {

            @Override
            public void onGroupCollapse(int groupPosition) {

                listView.cloSEOpenedItems();

                // prevIoUsGroup = groupPosition + 1;
            }
        });

        listView.setonItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> parent,View view,int position,long id) {
                // Log.d("VUBIT","ItemClick");
                return false;
            }
        });

        return rootView;

    }
    public void getList(){

        listDataHeader = new ArrayList<String>();
        listDataChild = new HashMap<String,List<Cartoon>>();
        List<String> restData = new ArrayList<String>();


        GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);
//        Call<List<CatList>> call = service.getAllVideoList();
        Call<jsonresponse> call = service.getAllVideoList();
        Call<VideoList> calllist = service.VideoList();
        call.enqueue(new Callback<jsonresponse>() {
            @Override
            public void onResponse(Call<jsonresponse> call,Response<jsonresponse> response) {
//                progressDoalog.dismiss();

                jsonresponse list=response.body();
                Toast.makeText(context,"Success 11",Toast.LENGTH_SHORT).show();

                listView.setAdapter(adapter);
//                if(response.body() != null) {
//                    generateDataList(response.body().getCatList());
//                }
//                List<CatList> movies = response.body().getCatList();
//                Log.d("VideoList","Number of movies received: " + .size());
                Log.d("VideoList","Number of movies received: ");
                //recyclerView.setAdapter(new VideoNamelistadapter(movies,R.layout.custom_row,getApplicationContext()));

                //generateDataList();
            }

            @Override
            public void onFailure(Call<jsonresponse> call,Throwable t) {
                //  progressDoalog.dismiss();
                Toast.makeText(context,"Something went wrong...Please try later 11",Toast.LENGTH_SHORT).show();
                Log.e("onfailure",t.toString());
            }
        });


        calllist.enqueue(new Callback<VideoList>() {
            @Override
            public void onResponse(Call<VideoList> calllist,Response<VideoList> response1) {
//                progressDoalog.dismiss();

                VideoList Videolist=response1.body();
                Toast.makeText(context,"Success 22 ",Toast.LENGTH_SHORT).show();

                listView.setAdapter(adapter);
                Log.d("VideoList",getApplicationContext()));

                //generateDataList();
            }

            @Override
            public void onFailure(Call<VideoList> call,"Something went wrong...Please try later 22",t.toString());
            }
        });
    }


    @Override
    public void onResume() {
        LT.myLog("TAG","onResume");
        super.onResume();

        // checkConnection();
        connectionDetector.checkConnection();

        // createChilds();
        adapter.notifyDataSetChanged();
        if (adapter.isExp()) {
            listView.setDividerHeight(0);
        } else {
        }
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {

        if (isChecked) {
            if (buttonView.getId() == R.id.rb_all) {
                rb_all.setChecked(true);
                rb_english.setChecked(false);
                rb_french.setChecked(false);
                rb_all.setSelected(true);
                langSelector = 0;
                myDialog.dismiss();
             
            }
            if (buttonView.getId() == R.id.rb_english) {
                rb_all.setChecked(false);
                rb_english.setChecked(true);
                rb_french.setChecked(false);
                rb_english.setSelected(true);
                langSelector = 1;
                myDialog.dismiss();
                // createChilds();
                // adapter.notifyDataSetChanged();

            }
            if (buttonView.getId() == R.id.rb_french) {
                rb_all.setChecked(false);
                rb_english.setChecked(false);
                rb_french.setChecked(true);
                rb_french.setSelected(true);
                langSelector = 2;
                myDialog.dismiss();

                // createChilds();
                // adapter.notifyDataSetChanged();
            }
        }
        createChilds();
        adapter.getFilter().filter("all");
        // updatedatafields();
        adapter.notifyDataSetChanged();
    }

    private void updatedatafields() {
        listDataChildNew1.clear();
        listDataHeaderDuplicateNew.clear();

        listDataChildNew1 = listDataChild;
        listDataChild.clear();
        listDataChild = listDataChildNew1;

        listDataHeaderDuplicateNew = listDataHeaderDuplicate;
        listDataHeaderDuplicate.clear();
        listDataHeaderDuplicate = listDataHeaderDuplicateNew;
        this.adapter.notifyDataSetChanged();

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.ll_all:
                rb_all.setChecked(true);
                rb_english.setChecked(false);
                rb_french.setChecked(false);
                langSelector = 0;
                break;
            case R.id.ll_english:

                rb_all.setChecked(false);
                rb_english.setChecked(true);
                rb_french.setChecked(false);
                langSelector = 1;
                break;
            case R.id.ll_french:

                rb_all.setChecked(false);
                rb_english.setChecked(false);
                rb_french.setChecked(true);
                langSelector = 2;
                break;

            default:
                break;
        }
        // createChilds();
        // updatedatafields();
        adapter.notifyDataSetChanged();
    }

    private void createChilds() {

        listDataHeaderIdsDuplicate.clear();
        listDataHeaderDuplicate.clear();
        //    childList = db.getchilds();

        // Log.d("VUBIT","child_List_Count " + childList);


        List<Cartoon> arrayList = null;
        for (int i = 0; i < listDataHeader.size(); i++) {

            arrayList = new ArrayList<Cartoon>();
            String video_Cat_Name = null;
            int video_cat_id = 0;
            video_Cat_Name = listDataHeader.get(i);
            video_cat_id = listDataHeaderIds.get(i);
            // get Video Cateogry Video from DB

            //   arrayList = db.getMyCategoryVideos(video_cat_id,langSelector);

            if (arrayList.size() > 0) {
                listDataHeaderDuplicate.add(video_Cat_Name);
                listDataChild.put(video_Cat_Name,arrayList);
            }
        }

        //deleted videdo remove from list

    }

    private void createHeaders() {

        listDataHeaderIds.clear();
        listDataHeader.clear();
        //    headersList = db.getheaders();

        for (int i = 0; i < headersList.size(); i++) {


            String name = headersList.get(i).getCatName();
            listDataHeader.add(name);

            String id = headersList.get(i).getId();

            listDataHeaderIds.add(Integer.valueOf(id));
        }


    }

    private int showfilterDialogue(int langSelector2) {
        myDialog = new Dialog(getActivity());
        myDialog.requestwindowFeature(Window.FEATURE_NO_TITLE);
        myDialog.setContentView(R.layout.filter_dilogue_layout);

        ll_all = (LinearLayout) myDialog.findViewById(R.id.ll_all);
        ll_english = (LinearLayout) myDialog.findViewById(R.id.ll_english);
        ll_french = (LinearLayout) myDialog.findViewById(R.id.ll_french);

        rb_all = (CheckBox) myDialog.findViewById(R.id.rb_all);
        rb_english = (CheckBox) myDialog.findViewById(R.id.rb_english);
        rb_french = (CheckBox) myDialog.findViewById(R.id.rb_french);
        if (langSelector == 0) {
            rb_all.setSelected(true);
            rb_english.setSelected(false);
            rb_french.setSelected(false);

            rb_all.setChecked(true);
            rb_english.setChecked(false);
            rb_french.setChecked(false);

        } else if (langSelector == 1) {

            rb_all.setSelected(false);
            rb_english.setSelected(true);
            rb_french.setSelected(false);

            rb_all.setChecked(false);
            rb_english.setChecked(true);
            rb_french.setChecked(false);

        } else if (langSelector == 2) {
            rb_all.setSelected(false);
            rb_english.setSelected(false);
            rb_french.setSelected(true);

            rb_all.setChecked(false);
            rb_english.setChecked(false);
            rb_french.setChecked(true);
        }

        rb_all.setonCheckedchangelistener(this);
        rb_english.setonCheckedchangelistener(this);
        rb_french.setonCheckedchangelistener(this);

        ll_all.setonClickListener(this);
        ll_english.setonClickListener(this);
        ll_french.setonClickListener(this);

        WindowManager.LayoutParams wmlp = myDialog.getwindow().getAttributes();

        wmlp.gravity = Gravity.TOP | Gravity.LEFT;
        wmlp.x = 180; // x position
        wmlp.y = 70; // y position

        myDialog.show();
        return langSelector2;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {

        inflater.inflate(R.menu.all_videos,menu);
        // Get the SearchView and set the searchable configuration
        searchManager = (SearchManager) getActivity()
                .getSystemService(Context.SEARCH_SERVICE);
        searchView = (SearchView) menu.findItem(
                R.id.action_search_videos).getActionView();
        // Assumes current activity is the searchable activity
        searchView.setSearchableInfo(searchManager
                .getSearchableInfo(getActivity().getComponentName()));
        searchView.setIconifiedByDefault(false); // Do not iconify the widget;
        // expand it by default

        searchView.setQueryHint("Video Name");
        adapter.notifyDataSetChanged();

        searchView.setonQueryTextListener(new OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }


            @Override
            public boolean onQueryTextChange(String newText) {

                // Filter filter = adapter.getFilter();

                // getActivity().getActionBar().setdisplayHomeAsUpEnabled(false);

                if (TextUtils.isEmpty(newText)) {
                    try {
                        listView.clearTextFilter();
                        // adapter.getFilter().filter("");
                    } catch (Exception e) {
                        e.printstacktrace();
                    }
                } else {
                    adapter.getFilter().filter(newText);
                    // listView.setFilterText("");
                }
                // createHeaders();
                // createChilds();
                adapter.notifyDataSetChanged();
                // filter = null;

                return false;
            }
        });
        searchView
                .setonQueryTextFocuschangelistener(new View.OnFocuschangelistener() {
                    @Override
                    public void onFocusChange(View view,boolean queryTextFocused) {
                        if (!queryTextFocused) {
                            searchView.setQuery("",false);
                            adapter.getFilter().filter("all");
                            // listView.clearTextFilter();
                            adapter.notifyDataSetChanged();
                        }
                    }
                });

        if (searchView.isEnabled()) {
        }

        searchView.setonSearchClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {

            }
        });
        // searchView.setonCloseListener(new OnCloseListener() {
        //
        // @Override
        // public boolean onClose() {
        // searchView.setQuery("",false);
        // adapter.getFilter().filter("");
        // adapter.notifyDataSetChanged();
        // return true;
        // }
        // });

        if (searchView.isEnabled()) {

        }
        super.onCreateOptionsMenu(menu,inflater);
    }

    @Override
    public boolean onoptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
            case R.id.action_filter:

                // if (showfilterDialogue(langSelector) > 0) {
                showfilterDialogue(langSelector);
                createChilds();
                // }

                break;

            default:
                break;
        }

        return super.onoptionsItemSelected(item);
    }

    AddFavorites addFavorites = new AddFavorites() {

        @Override
        public boolean onAddFavorites(int position) {

            // db.addToFavorites();

            FavoritesFragment favoritesFragment = new FavoritesFragment();
            /*
             * private ExpandableSwipeListView listView; private
             * expandablelistadapter adapter; private List<String>
             * listDataHeader; private HashMap<String,ArrayList<String>>
             * listDataChild;
             *
             *
             * movies_Category.get(movies_List.get(groupPosition))
             * .get(childPosition)
             */

            @SuppressWarnings("unused")
            boolean res = false;
            res = favoritesFragment.setListItem();
            return true;
        }

        @Override
        public void changeView(int size) {
            // Todo Auto-generated method stub

        }

    };

    ResponceListener responceListener = new ResponceListener() {

        @Override
        public void onError() {

        }

        @Override
        public void onCat_Success(Object profile) {
            createHeaders();

            adapter.notifyDataSetChanged();

        }

        @Override
        public void onVideo_Success(Object profile) {

            createChilds();
            // createNewChild();
            adapter.notifyDataSetChanged();

        }
    };

    protected void setFavoritesTabText() {
//        MYDBHelper_test db = null;
//        db = new MYDBHelper_test(context);
//        List<Cartoon> favoritesAllVideoList = db
//                .getFavoriteVideoDetailsList(0);
//
//        ((Activity) context).getActionBar().getTabAt(1)
//                .setText("New (" + favoritesAllVideoList.size() + ")");

    }

    @Override
    public void onPause() {
        LT.myLog("TAG","onPause");
        super.onPause();

        if (!searchView.isIconified()) {  //true == searchView closed
            searchView.setIconified(true);
        }
    }

    @Override
    public void onStop() {
        LT.myLog("TAG","onStop");
        super.onStop();
    }




}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...