我一直在尝试实现与联系人相关的某些功能。我有一个显示设备中所有联系人的片段。首先,当片段实例创建时,联系人将被获取并存储在 arraylist 中,然后将显示在 listview 中. 第一次获取时,加载联系人大约需要 3-5 秒,所以我放置了一个加载视图。有没有办法保存这个列表并保留它,以便第二次获取联系人列表更快。我正在替换按钮按下的片段..这是我的代码。
public static void replaceFragment(FragmentManager fm, int container, Fragment fragment) {
FragmentTransaction ft = fm.beginTransaction();
ft.replace(container, fragment);
ft.commit();
}
并调用了活动的onCreate()
.
Utils.replaceFragment(getSupportFragmentManager(), R.id.container, new Fragment1());
同样在活动中按下每个按钮时,我都在调用此方法..
@Override
public void onClick(View v) {
Typeface tf;
switch (v.getId()) {
case R.id.frag1_btn:
Utils.replaceFragment(getSupportFragmentManager(), R.id.container, new Fragment1());
break;
case R.id.contact_btn:
Utils.replaceFragment(getSupportFragmentManager(),
R.id.container, new ContactFragment());
break;
}
}
我已经搜索了saveToBackStack()
方法 and onsavedInstanceState(Bundle)
,onRetainSavedInstance()
但是在我的情况下可以在这里使用它们吗?还需要使用这些addToBackStack()
方法吗?..我还是个新手。有什么建议吗?