Frage

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.

my custom adapter :

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

my onCreate :

// 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

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 ...

Keine korrekte Lösung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top