Note that there are some explanatory texts on larger screens.

plurals
  1. POhow to call notifyDataSetChanged for custom ExpandableListView?
    text
    copied!<p>i'm trying to call notifyDataSetChanged for my custom ExpandableListView. what happens is for my child list, it shows the files in the selected folder (group list). when the child is clicked, it will ask whether to delete file or not. then, after delete, the ExpandableList will "refresh". but somehow, i could not call the notifyDataSetChanged method.</p> <p>my custom adapter :</p> <pre><code>public class customListAdapter extends BaseExpandableListAdapter { // Sample data set. children[i] contains the children (String[]) for groups[i]. private File mapFolder = new File (Environment.getExternalStorageDirectory(),"/MLT/A"); private File recordFolder = new File (Environment.getExternalStorageDirectory(),"/MLT/B"); private File scribbleFolder = new File (Environment.getExternalStorageDirectory(),"/MLT/C"); private String[] groups = { "A", "B", "C" }; private String[][] children = { mapFolder.list(), recordFolder.list(), scribbleFolder.list() }; public Object getChild(int groupPosition, int childPosition) { return children[groupPosition][childPosition]; } public long getChildId(int groupPosition, int childPosition) { return childPosition; } public int getChildrenCount(int groupPosition) { return children[groupPosition].length; } public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView textView = new TextView(MLT_File.this); textView.setBackgroundColor(Color.BLACK); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); textView.setPadding(100, 5, 0, 5); textView.setTextColor(Color.WHITE); textView.setTextSize(23); textView.setId(1000); textView.setText(getChild(groupPosition, childPosition).toString()); return textView; }//getChildView public Object getGroup(int groupPosition) { return groups[groupPosition]; } public int getGroupCount() { return groups.length; } public long getGroupId(int groupPosition) { return groupPosition; } public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView textView = new TextView(MLT_File.this); textView.setBackgroundColor(Color.WHITE); textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); textView.setPadding(100, 0, 0, 0); textView.setTextColor(Color.BLACK); textView.setTextSize(25); textView.setText(getGroup(groupPosition).toString()); return textView; } public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } public boolean hasStableIds() { return true; } public void notifyDataSetChanged() { this.notifyDataSetChanged(); } }//customListAdapter </code></pre> <p>my onCreate :</p> <pre><code>// Set up our adapter listAdapter = new customListAdapter(); expLV = (ExpandableListView) findViewById(R.id.mlt_expList); expLV.setAdapter(listAdapter); //registerForContextMenu(expLV); expLV.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub String parentName = ""; if (groupPosition == 0) { parentName = "A"; } else if (groupPosition == 1) { parentName = "B"; } else if (groupPosition == 2) { parentName = "C"; } TextView childView = (TextView) v; String childName = childView.getText().toString(); File file = new File(Environment.getExternalStorageDirectory(),"/Folder/"+childName); file.delete(); return false; } });//OnChildClickListener </code></pre> <p>the notifyDataSetChanged() in my custom is what i tried to do, as i realized i ExpandableList does not have that. but still, the method that i created does not appear either when i press expLV.n ...</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload