问题描述
我是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 (将#修改为@)