私はさまざまな断片を示すアクティビティを持っています。フラグメントのレイアウトは、通常、listViewです。 listViewでアイテムをクリックすると、次のフラグメントが表示されます。フラグメントにはSwipeRefreshLayoutがあります。Android:空のリストビューは、ボタンが押された後に表示されます
ボタンバックを押すとlistViewが空になることがあるという問題があります。 デバッグでは、データはまだどこにあるのかわかりますが、listViewは常にそれを再描画しません。 listViewが空の場合、listViewのリフレッシュもうまくいきません。データはリロードされますが、表示されません。
私はアダプタを持っており、私はnotifyDataSetChangedを呼び出します。また、リストをリセットしてからadapter.notifyDataSetChangedを呼び出そうとしましたが、うまくいきません。断片の
のonCreate():
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// creates the adapter for the different fragments
adapter = createListViewAdapter();
setListAdapter(adapter);
}
onViewCreated()断片:アダプタ
public void onViewCreated(View view, Bundle savedInstanceState){
// reload data when it is not present
this.values = values;
this.filteredValues = values;
adapter.notifyDataSetChanged();
this.setOnRefreshListener(() -> {
// reload data
this.values = values;
this.filteredValues = values;
adapter.notifyDataSetChanged();
)};
super.onViewCreate(view, savedInstanceState);
}
:
public abstract class BaseListViewAdapter extends BaseAdapter implements Filterable{
@Override
public int getCount(){
return filteredValues.size();
}
@Override
public T getItme(int position){
return filteredValues.get(positon);
}
@Override
public long getItemI(int position){
return 0;
}
@Override
public Filter getFilter(){
return BaseListViewFragment.this.getFilter();
}
}
getView()
、getViewTypeCount()
及びgetItemViewType
のに実装されています異なる断片。
問題は定期的に発生するのではなく、問題は何ですか?
この問題を解決するには、SwipeRefreshLayoutを削除してください。 –