1
我的應用程序有一個活動,其中包含帶查看尋呼機的片段。 查看分頁器實例化片段,其中我從互聯網加載數據並顯示它。 我有大約60個片段總是在查看傳呼機(其日期:今天+ 30天前,30天后)。避免viewpager中的片段娛樂
問題是,當我改變方向數據時,再次開始下載。如何保存這個片段的狀態?
這裏查看傳呼機適配器:
public class TimesheetPagerAdapter extends FragmentStatePagerAdapter {
private DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
private DateFormat dateTitleFormatted = new SimpleDateFormat("MMM dd - EEEE", Locale.US);
private ArrayList<Date> mDates;
public TimesheetPagerAdapter(FragmentManager fm, ArrayList<Date> mDates) {
super(fm);
this.mDates = mDates;
}
@Override
public Fragment getItem(int i) {
return TimesheetPage.newInstance(dateFormat.format(mDates.get(i)));
}
@Override
public int getCount() {
return mDates.size();
}
}
而且ViewPager片段:
public static TimesheetPage newInstance(String page) {
TimesheetPage TimesheetPage = new TimesheetPage();
Bundle arguments = new Bundle();
arguments.putString("date", page);
TimesheetPage.setArguments(arguments);
return TimesheetPage;
}
@Override
public void onCreate(Bundle savedInstanceState) {
setRetainInstance(true);
super.onCreate(savedInstanceState);
dateString = getArguments().getString("date");
Random rnd = new Random();
backColor = Color.argb(50, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.item_pager_timesheet, null);
LinearLayout layout = (LinearLayout) view.findViewById(R.id.llPageLayout);
tvPage = (TextView) view.findViewById(R.id.tvAmountHours);
mLoadingLayout = LoadingLayout.wrap(layout, android.R.attr.progressBarStyle);
lvTimesheet = (ListView) view.findViewById(R.id.lvTimesheet);
tvPage.setBackgroundColor(backColor);
long id = getController().getUserAccount().getCompany().getCompanyId();
mLoadingLayout.showLoading();
Log.i("onCreateView", "TimesheetPage" + dateString);
getController().getNetworkApi().getCompanyTimeSheet(id, dateString, timesheetCallback);
return view;
}
如何將網絡調用保存到緩存?謝謝你的答案! – onCreate 2014-10-09 20:02:48
緩存意味着您將本地網絡請求的結果保存在本地(因爲您不需要在每個頁面上顯示請求)。您可以使用類似離子的庫,使用磁盤+內存緩存:https://github.com/koush/ion – Murphy 2014-10-11 10:21:42