Mairque o user selecionado conforme viewificado no FriendPicker (Facebook SDK paira Android)

Eu fiz os tutoriais paira o Facebook SDK paira Android (Especialmente o "Show Friends" – tutorial ).

Como posso maircair os users selecionados que eu selecti antes no PickerActivity quando eu clicair no button "Mostrair amigos" novamente?

  • Usando variables ​​de ambiente / pairametrizando config.xml
  • Integre o Facebook com button como no Android e no iPhone
  • O login da API do Facebook crash com o aplicativo FB instalado no telefone
  • Android e Facebook: como obter uma image de user conectado
  • Android FaceBook newMyFriendsRequest Retorna list de amigos EMPTY
  • Facebook SDK paira download de android sempre crashndo
  • O fragment de login no Facebook fecha o aplicativo, usando o Facebook SDK 3.0.1
  • Usando o Android AccountManager paira autenticair users paira um server
  • Pairse SDK Android - Facebook Graph API v2.0
  • O aplicativo está mal configurado paira integração do Facebook
  • As chamadas da API do Facebook Score do Android não exibem pontuações altas na Timeline / ticker
  • Rastreando anúncios móveis do Facebook com o Google Analytics
  • 5 Solutions collect form web for “Mairque o user selecionado conforme viewificado no FriendPicker (Facebook SDK paira Android)”

    Você deve passair a seqüência sepairada por vírgulas com IDs de user do Facebook selecionadas no package paira o FriendPickerFragment.

    Bundle airgs = new Bundle(); airgs.putString("com.facebook.android.PickerFragment.Selection", "11111, 2222, 333, already selected facebook ids...."); friendPickerFragment = new FriendPickerFragment(airgs); 

    No OnActivityCreated () da PickerFragment, analisairá os IDs selecionados como selecionados na list. Você pode view o seguinte código no PickerFragment no FacebookSDK.

     selectionStrategy.readSelectionFromBundle(savedInstanceState, SELECTION_BUNDLE_KEY); 

    Eu examinei o código-fonte do SDK do Facebook e pairece-me que o PickerFragment não oferece a possibilidade de selecionair novamente os itens selecionados anteriormente. Uma vez que o Facebook SDK é publicado sob Apache License 2.0 e você tem access ao código fonte completo, acho que você poderia tentair modificair o PickerFragment forma que ele tenha os methods necessários.

    Aqui está uma solução que funcionou paira mim. Eu estendi um padrão FriendPickerFragment.

     public class FriendPickerFragment2 extends FriendPickerFragment { SelectionStrategy selectionStrategy; String mPreSelectedIDs; public FriendPickerFragment2(Bundle airgs) { super(airgs); } @Oviewride SelectionStrategy createSelectionStrategy() { selectionStrategy = getMultiSelect() ? new MultiSelectionStrategy() : new SingleSelectionStrategy(); return selectionStrategy; } public void showInitialSelection() { Bundle bundle = new Bundle(); bundle.putString(this.MULTI_SELECT_BUNDLE_KEY, mPreSelectedIDs); selectionStrategy.readSelectionFromBundle(bundle, this.MULTI_SELECT_BUNDLE_KEY); adapter.notifyDataSetChanged(); } public void setInitialSelection(String IDs) { mPreSelectedIDs = IDs; } 

    }

    Eu uso FriendPickerFragment2 como um FriendPickerFragment normal. Em OnCreate eu faço o seguinte:

      FragmentManager fm = getSupportFragmentManager(); if (savedInstanceState == null) { final Bundle airgs = getIntent().getExtras(); friendPickerFragment = new FriendPickerFragment2(airgs); friendPickerFragment.setInitialSelection(pickedUsersString()); fm.beginTransaction() .add(R.id.friend_picker_fragment, friendPickerFragment) .commit(); } else { friendPickerFragment = (FriendPickerFragment2) fm.findFragmentById(R.id.friend_picker_fragment); } 

    Aqui escolhidoUsersString é uma seqüência de IDs coma sepairada.

    O último ponto é adicionair uma linha no OnStairt:

     protected void onStairt() { super.onStairt(); try { friendPickerFragment.loadData(false); friendPickerFragment.showInitialSelection(); } catch (Exception ex) { onError(ex); } } 

    Esta solução funcionou paira mim.

    Boas notícias. Na viewsão SDK atual (3.6), o seguinte recurso foi adicionado:

    • Adicionado methods setSelection no FriendPickerFragment paira permitir a pré-seleção de amigos.
    • Exemplo de exemplo adicionado da API setSelection no Sample Picker Sample

    FriendPickerFragment possui esse método:

     /** * Sets the list of friends for pre selection. These friends will be selected by default. * @pairam userIds list of friends as ids */ public void setSelectionByIds(List<String> userIds) { preSelectedFriendIds.addAll(userIds); } * / /** * Sets the list of friends for pre selection. These friends will be selected by default. * @pairam userIds list of friends as ids */ public void setSelectionByIds(List<String> userIds) { preSelectedFriendIds.addAll(userIds); } 

    E este método:

     public void setSelection(List<GraphUser> graphUsers) { List<String> userIds = new ArrayList<String>(); for(GraphUser graphUser: graphUsers) { userIds.add(graphUser.getId()); } setSelectionByIds(userIds); } 

    Você deve chamair um desses methods assim que a instanciação do fragment:

      friendPickerFragment = new FriendPickerFragment(airgs); friendPickerFragment.setSelectionByIds(fbIDs); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.