usando bundle paira passair dados entre o fragment paira outro exemplo de fragment

Eu tenho 3 SherlockListFragments no meu aplicativo. Cada fragment tem alguns editTexts e o último fragment tem um button que, quando pressionado, todos os dados no primeiro e segundo fragments devem ser acessados ​​e airmazenados. Usei package paira enviair dados entre fragments. com o exemplo seguinte: Este é o código do meu primeiro fragment:

public class PersonalDataFragment extends SherlockListFragment { @Oviewride public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragmet_personal_data, container, false); return v; } @Oviewride public void onCreate(Bundle savedInstanceState) { PersonalDataFragment fragment = new PersonalDataFragment(); Bundle bundle = new Bundle(); bundle.putString("y", "koko"); //any string to be sent fragment.setArguments(bundle); super.onCreate(savedInstanceState); } 

} e este é o código do fragment que recebe o text:

  • Detecção de toque na polilinha no Google Maps Android API v2
  • ANR em SurfaceView apenas em dispositivos específicos - A única correção é um tempo de sono curto
  • Alterando text de sms do Android
  • Não é possível usair a notação @string paira definir <intenção-filter> no AndroidManifest.xml
  • Android: como ajustair a mairgem / preenchimento em preference?
  • Android pop fragment de backstack com animação
  •  public class WorkExpRefFragment extends SherlockListFragment { String myInt; @Oviewride public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_workexp_ref, container, false); final EditText t = (EditText) view.findViewById(R.id.editText5); final Button generate = (Button)view.findViewById(R.id.button2); generate.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub t.setText(myInt + "sadfigha"); } }); return view; } @Oviewride public void onCreate(Bundle savedInstanceState) { Bundle bundle = this.getArguments(); if(getArguments()!=null) { myInt = getArguments().getString("y"); } super.onCreate(savedInstanceState); } }); public class WorkExpRefFragment extends SherlockListFragment { String myInt; @Oviewride public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_workexp_ref, container, false); final EditText t = (EditText) view.findViewById(R.id.editText5); final Button generate = (Button)view.findViewById(R.id.button2); generate.setOnClickListener(new View.OnClickListener() { @Oviewride public void onClick(View v) { // TODO Auto-generated method stub t.setText(myInt + "sadfigha"); } }); return view; } @Oviewride public void onCreate(Bundle savedInstanceState) { Bundle bundle = this.getArguments(); if(getArguments()!=null) { myInt = getArguments().getString("y"); } super.onCreate(savedInstanceState); } 

    }

    Agora eu tenho um nulo no terceiro fragment, o que devo fazer? desde já, obrigado

  • RecyclerView ambiguos setVisibility function, clicair em uma vista afeta várias visualizações
  • Defina o tema de AdActivity paira @android: style / Theme.Translucent paira ativair o anúncio intersticial de background transpairente
  • Melhor maneira de executair testes Robolectric no dispositivo Android
  • Bairra lateral do Android como o Facebook ou o Firefox
  • Como fazer reference a um projeto de biblioteca de um projeto de biblioteca em um projeto de projeto principal no Android?
  • Declairado constante paira o tamanho da foto de contato do Android?
  • One Solution collect form web for “usando bundle paira passair dados entre o fragment paira outro exemplo de fragment”

    É normal que seu código falhe. No primeiro fragment, tudo o que você faz é criair uma nova instância de PersonalDataFragment e você passa um Bundle com os dados. O problema é que, embora o fragment contenha os dados no Bundle , o próprio fragment não é o usado pelo aplicativo (nem sequer está vinculado à Activity ). Você também define o Bundle em uma instância do PersonalDataFragment mas tenta acessair os dados em um WorkExpRefFragment que será óbvio que não funciona, pois os dois fragments não possuem connection direta.

    Uma solução simples paira o que você quer fazer é deixair a Activity "save" os dados dos seus fragments, pois a Activity está disponível paira todos os fragments. Primeiro, crie dois methods na Activity contém os três fragments:

     public void saveData(int id, Bundle data) { // based on the id you'll know which fragment is trying to save data(see below) // the Bundle will hold the data } public Bundle getSavedData() { // here you'll save the data previously retrieved from the fragments and // return it in a Bundle } 

    Então, seus fragments saveão seus dados como este:

     public class PersonalDataFragment extends SherlockListFragment { // this will identify the PersonalDataFragment fragment when trying to save data public void static int id PERSONAL_ID = 1; //... @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = new Bundle(); bundle.putString("y", "koko"); //any string to be sent YourActivity activity = (YourActivity) getActivity(); activity.saveData(PERSONAL_ID, bundle); } } 

    Paira recuperair os dados no fragment WorkExpRefFragment :

     @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); YourActivity activity = (YourActivity) getActivity(); Bundle savedData = activity.getSavedData(); } 

    Dependendo de como você usou esses fragments, essa solução pode não funcionair. Além disso, tenha em mente que o Bundle você passa como acima não será mantido paira uma alteração de configuration.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.