Problème Viewpager Update un fragment quand on swipe
Bonjour,
J'ai actuellement un ViewPager avec 3 fragments.
Lorsque je suis sur le fragment du milieu, je peux check 1 radiobutton parmis 3. Je stocke la valeur du check dans un sharedpreferences puis selon cette valeur je veux update un textview et un imageview sur le fragment de droite.
Pour l'instant j'arrive à effectuer l'update uniquement sur un onClick(situé dans le fragment de droite) ou par un swipe mais je dois repasser par le fragment de gauche pour que l'update se fasse.
J'aimerai savoir comment faire pour que l'update se fasse sur le swipe ou sur le check du radiobutton.
Fragment activity :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| public class Commander extends FragmentActivity {
ViewPager Tab;
TabPagerAdapter TabAdapter;
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.etapescommande);
TabAdapter = new TabPagerAdapter(getSupportFragmentManager());
Tab = (ViewPager)findViewById(R.id.pager);
Tab.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar = getActionBar();
actionBar.setSelectedNavigationItem(position);
}
});
Tab.setAdapter(TabAdapter);
actionBar = getActionBar();
//Enable Tabs on Action Bar
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener(){
@Override
public void onTabReselected(android.app.ActionBar.Tab tab,
FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
Tab.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(android.app.ActionBar.Tab tab,
FragmentTransaction ft) {
// TODO Auto-generated method stub
}};
//Add New Tab
actionBar.addTab(actionBar.newTab().setText("Ma commande").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Paiement").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Validation").setTabListener(tabListener));
}
} |
Fragment du milieu :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public class Paiement extends Fragment {
private RadioGroup radioPaiement;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View paiement = inflater.inflate(R.layout.paiement, container, false);
return paiement;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
View v= getView();
radioPaiement = (RadioGroup) v.findViewById(R.id.radioPaiement);
radioPaiement.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton checkedRadioButton = (RadioButton)radioPaiement.findViewById(checkedId);
int checkedIndex = radioPaiement.indexOfChild(checkedRadioButton);
SharedPreferences app_preferencesP = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor editorP = app_preferencesP.edit();
String paiement = String.valueOf(checkedIndex);
Log.i("Valeur radiobutton Paiement",paiement);
editorP.putString("SavePaiement", paiement);
editorP.commit();
}
});
}
} |
Fragment de droite :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| public class ValidationCommande extends Fragment {
Button ValidationCommande;
TextView ModeDePaiement;
ImageView ImagePaiement;
String Paiement,mail;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View validationcommande = inflater.inflate(R.layout.validationcommande, container, false);
return validationcommande;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
View v= getView();
ModeDePaiement = (TextView)v.findViewById(R.id.RecapPaiement);
ImagePaiement = (ImageView)v.findViewById(R.id.RecapPaiementImage);
ValidationCommande = (Button)v.findViewById(R.id.ButtonValidationCommande);
ValidationCommande.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder2 = new AlertDialog.Builder(getActivity());
builder2.setTitle("Confirmation");
builder2.setMessage("Valider la commande ?");
builder2.setNegativeButton("Non", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
SharedPreferences app_preferences2 = PreferenceManager.getDefaultSharedPreferences(getActivity());
mail = app_preferences2.getString("key", "null");
Paiement = app_preferences2.getString("SavePaiement", "null");
Log.i("SavePaiement",Paiement);
if(Paiement.equals("null")) {
ModeDePaiement.setText(null);
ImagePaiement.setImageResource(0);
}
else if(Paiement.equals("0")) {
ModeDePaiement.setText("Carte bancaire");
ImagePaiement.setImageResource(R.drawable.modedepaiement);
}
else if(Paiement.equals("1")) {
ModeDePaiement.setText("Compte Paypal");
ImagePaiement.setImageResource(R.drawable.paypal);
}
else if(Paiement.equals("2")){
ModeDePaiement.setText("Chèque");
ImagePaiement.setImageResource(R.drawable.cheque);
}
............................
}
});
} |
Merci d'avance