Android 如何刷新列表视图的内容

Android 如何刷新列表视图的内容,android,Android,我制作了一个列表视图,显示数据库中的内容。但是,如果我通过不同的活动在数据库中添加数据,那么修改后的列表视图只有在我关闭并启动应用程序时才可见 因此,我如何刷新列表视图,以便在输入数据后,它在列表中可见 我听说过notifyDataSetChange(),但不知道在我的代码中放在哪里 请帮忙。TimePickerPop类是向数据库添加数据的类 public class MainActivityFragment2 extends Fragment { private List&l

我制作了一个列表视图,显示数据库中的内容。但是,如果我通过不同的活动在数据库中添加数据,那么修改后的列表视图只有在我关闭并启动应用程序时才可见

因此,我如何刷新列表视图,以便在输入数据后,它在列表中可见

我听说过notifyDataSetChange(),但不知道在我的代码中放在哪里

请帮忙。TimePickerPop类是向数据库添加数据的类

    public class MainActivityFragment2 extends Fragment {

    private List<TimeList> TDList = new ArrayList<TimeList>();

    public MainActivityFragment2() {
    }

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

        populateTimeList();
    }

    private void populateTimeList() {
        Context ctx = this.getActivity();
        DBoperations db = new DBoperations(ctx);
        Cursor cr = db.getInformation(db);
        cr.moveToFirst();
        String TimeH, TimeM, EtimeH, EtimeM;
        do {
            TimeH = Integer.toString(cr.getInt(1));
            TimeM = Integer.toString(cr.getInt(2));
            EtimeH = Integer.toString(cr.getInt(3));
            EtimeM = Integer.toString(cr.getInt(4));
            TDList.add((new TimeList(TimeH + " : " + TimeM, EtimeH + " : " + EtimeM)));
        }while (cr.moveToNext());
    }

    private class MyAdapter extends ArrayAdapter<TimeList> {

        public MyAdapter(Context context, List<TimeList> values) {

            super(context, R.layout.time_list_item,values);
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            View v = convertView;
            LayoutInflater inflater = LayoutInflater.from(getContext());

            if( v == null){
                v = inflater.inflate(R.layout.time_list_item, parent, false);
            }

            TimeList currLoc = TDList.get(position);

            TextView theTextView = (TextView) v.findViewById(R.id.time_list_item_textview1);
            theTextView.setText(currLoc.getTime());

            theTextView = (TextView) v.findViewById(R.id.time_list_item_textview2);
            theTextView.setText(currLoc.getDuration());

            return v;
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.time_list_view, container, false);

        ListView list = (ListView) rootView.findViewById(R.id.time_list_view);
        ArrayAdapter<TimeList> adapter = new MyAdapter(getActivity(),TDList);
        list.setAdapter(adapter);
        //adapter.notifyDataSetChanged();  // not working
        setRetainInstance(true);

        ImageButton ib = (ImageButton) rootView.findViewById(R.id.imageButton1);
        ib.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivityFragment2.this.getActivity(), TimePickerPopup.class));
            }
        });

        return rootView;
    }
} 

在适配器中创建:

public void notifyChange() {
    notifyDataSetChanged();
}
通过您的活动电话:

adapter.notifyChange();

您需要将其放在向其添加新数据的位置notifydatasetchanged()
adapter.notifyChange();