我使用它来加载片段:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Fragment fragment = new Messaging();
Bundle args = new Bundle();
FriendInfo friend = null;
friend = friendAdapter.getItem(position);
args.putString(FriendInfo.USERNAME, friend.userName);
args.putString(FriendInfo.PORT, friend.port);
args.putString(FriendInfo.IP, friend.ip);
setTitle(friend.userName);
fragment.setArguments(args);
mTitle = getTitle();
friendAdapter.notifyDataSetChanged();
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
mDrawerLayout.closeDrawer(mDrawerList);
}
正如您所看到的,每次都会加载相同的片段,但我只需要为FriendInfo.USERNAME
,FriendInfo.PORT
和FriendInfo.IP
设置不同的值。
如何在不重新加载整个片段的情况下执行此操作?
答案 0 :(得分:0)
您可以使用FragmentManager的findFragmentById()
或findFragmentByTag()
方法检查片段是否已附加到活动。尝试首先找到片段 - 如果你找到它,只需自己更新;否则就像你已经做的那样重新创造它。