Le passage des données entre des fragments dans les viewpager

J'ai Viewpager avec 2 fragments: CurrentWeatherFragment et ForecastFragment. J'ai besoin de passer de la chaîne de l'un à l'autre, Iam à l'aide de l'interface comme ci-dessous, mais je reçois NullPointerException, le message ne passe pas propertly...

public class CurrentWeatherFragment extends Fragment {

SendMessage SM

public void onCreateView(...) {
String Message = "Hello"
SM.sendData(Message);
}

interface SendMessage
{
    public  void sendData(String message);
}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);

    try {
        SM = (SendMessage) activity;
    } catch(ClassCastException e) {
        throw  new ClassCastException("Musisz zaimplementowac metode sendData");
    }
}
}

MainActivity.java

import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.os.Bundle;


public class MainActivity extends FragmentActivity implements CurrentWeatherFragment.SendMessage {

ViewPager viewPager;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //setting fragment view pager
    viewPager = (ViewPager)findViewById(R.id.pager);
    PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
    viewPager.setAdapter(pagerAdapter);
}

public void sendData (String message){
    ForecastFragment FF = new ForecastFragment();
    FF.getData(message);
}

}

ForecastFragment.java

public class ForecastFragment extends Fragment {

public View onCreateView(){
TextView txt = (TextView)v.findViewById(R.id.txt_forecast);
}

public void getData(String message){
        txt.setText(message);
}
}

J'ai utilisé cette méthode avec succès dans d'autres applications, où j'ai eu 2 fragments dans une activité et que je pouvais l'appeler par son ID

public void sendData(String message) {

    SecondFragment f2 = (SecondFragment)getFragmentManager().findFragmentById(R.id.F2);
    f2.getData(message);
}

Mais ici les Fragments n'ont pas les Id et je pense que le message n'est pas passé parce que je n'utilise pas FragmentManager(), mais comment trouver le fragment de viewpager sans ID, toute suggestion/idées?

OriginalL'auteur drapichrust | 2015-04-19