我基本上有一個分爲兩半的佈局。在我的左邊,我有一些按鈕可以觸發右側佈局中顯示的各種片段。重用/恢復片段,而不必重新創建它
當我點擊相應的片段以所述片段顯示區域加載每個按鈕。某些片段(例如片段A和片段D)通過查詢數據庫或從互聯網獲取數據等來顯示覆雜數據。只要應用程序正在運行,該數據一旦加載就不會改變。我的問題是我可以將片段恢復到之前的狀態並顯示它。要更清楚 - >我點擊Fragment A按鈕,在Fragment A類中完成所有計算並顯示,然後單擊Fragment B並顯示B片段,然後C。現在,當我點擊Fragment A按鈕時,我只是希望它加載數據,而不是重做計算/連接/數據庫查詢。
代碼中使用了:
public void onClick(View v) {
switch (position) {
case 0:
newContent = new FragmentA();
break;
case 1:
newContent = new FragmentB();
break;
case 2:
newContent = new FragmentC();
break;
case 3:
newContent = new FragmentD();
break;
case 4:
newContent = new FragmentE();
break;
default: break;
}
if (newContent != null){
mContent = newContent;
switchFragment(newContent);
}
}
public void switchFragment(Fragment fragment) {
mContent = fragment;
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.replacelayout, fragment)
.commit();
}
片段代碼示例
public class FragmentA extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragmenta, container, false);
}
@Override
public void onActivityCreated (Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
RUN ASYNTASKS TO CONNECT/QUERYDB AND DIPLAY THE DATA
}
}
不知道如何去了解它 - 使用堆棧中? onResume()?因爲我不確定在調用.replace時調用了哪個函數。
由於提前
你找到了一個解決方案? –