2014-05-02 4 views
0

je l'utiliser pour charger un fragment:données de mise à jour du fragment sans charger complètement le même fragment de nouveau

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); 

    } 

Comme vous pouvez le voir charge le même à chaque fois Fragment, mais je seulement besoin d'avoir des valeurs différentes pour FriendInfo.USERNAME , FriendInfo.PORT et FriendInfo.IP. Comment faire ceci sans charger à nouveau tout le fragment?

Répondre

0

Vous pouvez vérifier si un fragment est déjà associé à l'activité à l'aide des méthodes findFragmentById() ou findFragmentByTag() de FragmentManager. Essayez de trouver le fragment en premier - si vous le trouvez, mettez le à jour vous-même; sinon, créez-le de nouveau comme vous le faites déjà.

+0

Je suis désolé si je me suis mal exprimé, mais mon problème actuel est de le mettre à jour par moi-même. – user3557747

+0

Eh bien, c'est votre fragment, vous pouvez ajouter toutes les méthodes publiques que vous voulez qui feront l'affaire. Jetez juste le Fragment que vous trouvez de FragmentManager au type approprié. – Karakuri

Questions connexes