カスタムフラグメントクラスのグローバル変数として ListView と ArrayAdapter を持つフラグメントがあります。このリストを更新して、追加のテキスト フィールドを表示または非表示にする関数もあります。そのため、アクティビティからローテーション (特殊なランド レイアウトに変更) した後にリスト更新関数を呼び出すと、ListView オブジェクトと ArrayAdapter オブジェクトが null であることがわかりました。したがって、リストを更新できません。私は何をすべきか?Thnxみんな。
private View fragmentView;
private SimpleListNewsAdapter adapterNews;
private ListView listNews;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
fragmentView = inflater.inflate(getLayoutId(), container, false);
listNews = (ListView) fragmentView.findViewById(R.id.newsList);
adapterNews = new SimpleListNewsAdapter(fragmentView.getContext(), R.id.newsList);
listNews.setAdapter(adapterNews);
…
return fragmentView;
}
public void showListExpanded(Boolean expanded){
if (isShowDesc != expanded){
isShowDesc = expanded;
if (adapterNews != null && listNews != null){
adapterNews.notifyDataSetChanged();
listNews.refreshDrawableState();
listNews.invalidateViews();
listNews.setAdapter(adapterNews);
} else {
// Here I should do something to refresh my list
}
}
}