更新片段数据而不再完全加载相同的片段

时间:2014-05-02 22:32:06

标签: android android-fragments

我使用它来加载片段:

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.USERNAMEFriendInfo.PORTFriendInfo.IP设置不同的值。 如何在不重新加载整个片段的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用FragmentManager的findFragmentById()findFragmentByTag()方法检查片段是否已附加到活动。尝试首先找到片段 - 如果你找到它,只需自己更新;否则就像你已经做的那样重新创造它。