adapter 更新的条件.
1.数据发生改变,
首先看一下notifyDataSetChanged与notifyDataSetInvalidated的区别
我们可应用粮仓来解释一下,两者的区别。
notifyDataSetChanged:粮仓中得粮食少了,或者多了,发送通知。
notifyDataSetInvalidated:粮仓变换了,比如原来从A仓取粮食,现在换成了B粮仓。
2.通知Adapter,
3数据源的绑定,
package com.example.Fragment;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import com.example.util.AlarmSQLAdapter;
import com.example.util.AlarmTab;
public class UpdateAdapter {
private Context context;
private List<AlarmTab> sqlData ;
private ArrayList<AlarmTab> mListData = new ArrayList<AlarmTab>();
private static UpdateAdapter updateadapter;
private UpdateAdapter(Context context) {
this.context = context;
}
public static UpdateAdapter getUpdtUpdateadapter(Context context) {
if (updateadapter == null) {
updateadapter = new UpdateAdapter(context);
}
return updateadapter;
}
private void AddData(){
AlarmSQLAdapter sql = AlarmSQLAdapter.getMyAlarmSQL(context);
sqlData = sql.loadData();
for(AlarmTab aa : sqlData){
AlarmTab alarm = new AlarmTab();
alarm.setHour(aa.getHour());
alarm.setMinute(aa.getMinute());
alarm.setId(aa.getId());
alarm.setLabel(aa.getLabel());
mListData.add(alarm);
}
}
public void UptateData() {
mListData.clear();
AddData();
MainFragment.adapter.notifyDataSetChanged();
}
public void UptateDataEditAlarm(){
mListData.clear();
AddData();
EditAlarmFragment.adapter.notifyDataSetChanged();
}
public ArrayList<AlarmTab> reData() {
AddData();
return mListData;
}
}
博客探讨了Adapter在数据发生改变时的更新条件,包括notifyDataSetChanged和notifyDataSetInvalidated的区别。前者表示数据增减,后者表示数据源本身变化。同时提到了数据源绑定的重要性。
1055

被折叠的 条评论
为什么被折叠?



