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