问题描述
我设法使用 notifyDataSetChanged 不断刷新 ListView 中的数据。但是,每次我添加一组新数据时,以前的一组数据总是会更改为当前数据。有没有办法在每次“notifyDataSetChanged”之后保留以前的数据集?
这是我的代码:
private ArrayList<Model_inputs> inputsList;
boolean isActive = false;
private Adapter_inputs adapter_inputs;
public void onViewCreated(View view,Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button refresh_btn = view.findViewById(R.id.refresh);
refresh_btn.setonClickListener(new View.OnClickListener(){
public void onClick(View view){
if(!isActive) {
isActive = true;
Toast.makeText(getContext(),"Refreshing...",Toast.LENGTH_SHORT).show();
newInputs();
}
else if(isActive){
isActive = false;
Toast.makeText(getContext(),"Refreshing Stopped",Toast.LENGTH_SHORT).show();
}
}
});
inputsList = new ArrayList<>();
Model_inputs inputs = new Model_inputs("Text1","Text2","Text3","Text4");
inputsList.add(inputs);
ListView listView = (ListView) getActivity().findViewById(R.id.InputValue_LV);
adapter_inputs = new Adapter_inputs(requireActivity(),R.layout.row_inputs,inputsList);
listView.setAdapter(adapter_inputs);
}
public void newInputs(){
inputsList.add(new Model_inputs("Text1","Text4"));
adapter_inputs.notifyDataSetChanged();
if (isActive) {
refresh(1000);
}
}
public void refresh(int milliseconds){
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
newInputs();
}
},milliseconds);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)