我在做adapter.notifyDataSetChanged()
和listView.invalidateViews()
我得到 接到電話後,如果條件說「blabla」變爲true。但是我的用戶界面還沒有更新。收到廣播接收方意向後沒有反映變化
public class UserFragment extends Fragment{
public class FragmentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(getSetting("CurrentView","").equalsIgnoreCase("blabla")){
adapter.notifyDataSetChanged();
listView.invalidateViews(); //this is not updating the UI.
}
}
注:我試着撥打同一UserFragment.java
再次更換相同的片段來更新改變,但是這雖然更新的用戶界面,但在onReceive
給予者除外IllegalStateException: Can not perform this action after onSaveInstanceState
我的代碼的其餘部分方法 -
UserFragment firstFragment = new UserFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.headlines_fragment, firstFragment)
.addToBackStack(null).commit(); //IllegalStateException: Can not perform this action after onSaveInstanceState
任何想法?
使這被顯示在適配器確保數據改變你叫notifydatasetchanged的適配器之前。 –
是的,只有當我轉到其他視圖然後再次返回到此視圖,但不是立即在同一視圖內時,它纔會發生變化。 –
嘗試再次調用onCreate(bundle),這是一個骯髒的技巧,但工程。 –