La lecture SharedPreferences données du Fragment, dans FragmentActivity

Je suis en train d'enregistrer le nom de l'utilisateur tape sur l'écran de connexion ci-dessous Settings.java à un sharedPreference, qui sera lue par le TestFragment2.java, qui est appelée à partir d'un autre FragmentActivity, SampleTabsDefault.java

La lecture SharedPreferences données du Fragment, dans FragmentActivity
Settings.java

    private void savePrefs(String key, boolean value) {
        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
        Editor edit = sp.edit();
        edit.putBoolean(key, value);
        edit.commit();
    }

    private void savePrefs(String key, String value) {
        SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
        Editor edit = sp.edit();
        edit.putString(key, value);
        edit.commit();
    }

    @Override
    public void onClick(View v) {
        //TODO Auto-generated method stub
        savePrefs("CHECKBOX", cb.isChecked());
        if (cb.isChecked())
            savePrefs("NAME", et.getText().toString());
        Intent myIntent = new Intent("com.test.SAMPLETABSDEFAULT");
        startActivity(myIntent);

        finish();
    }

}

Intent myIntent = new Intent("com.test.SAMPLETABSDEFAULT");startActivity(myIntent);
les charges de la SampleTabsDefault.java tout simplement beau, et ainsi de faire tous les fragments qu'il appelle.

 class NavTabs extends FragmentPagerAdapter {
    public NavTabs(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch(position)
        {
                case 0:
                     TestFragment fragment = new TestFragment();  
                     return fragment;

                 case 1:
                     TestFragment2 fragment2 = new TestFragment2();  
                     return fragment2;

          }

                     TestFragment3 fragment3 = new TestFragment3();  
                     return fragment3;


    }

Je peux faire défiler de gauche à droite et d'obtenir des fragments TestFragment2.java voir ci-dessous....cependant, ses pas la lecture, ou la messagerie instantanée pour en faire un bonehead déplacer l'application de la sharedPreferences à l'intérieur de TestFragment2.java
La lecture SharedPreferences données du Fragment, dans FragmentActivity
TestFragment2.java

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View myView = inflater.inflate(R.layout.fragment_2, container, false);
     text = (TextView)myView.findViewById(R.id.textView1);
     et = (TextView)myView.findViewById(R.id.textView3);
     cb = (CheckBox) myView.findViewById(R.id.checkBox1);


    loadPrefs();
    return myView;

}

private void loadPrefs() {
    SharedPreferences sp = getActivity().getSharedPreferences("CHECKBOX", 0);
    boolean cbValue = sp.getBoolean("CHECKBOX", false);
    String name = sp.getString("NAME", "YourName");
    if(cbValue){
        cb.setChecked(true);
    }else{
        cb.setChecked(false);
    }
    et.setText(name);
}

Dans TestFragment2.java Im essayant de les lire et de les appliquer à textView via 'setText ();" les sharedPreferences la même manière que je fais sur Settings.java. Le code de la Settings.java fonctionne, String name = sp.getString("NAME", "YourName");il charge le sharedPreference et affiche le nom entré par l'utilisateur dernière fois que l'application a été couru , mais dans TestFragmnet2.java le même bloc de code renvoie Votrenom de String name = sp.getString("NAME", "YourName");

Toute aide est grandement appréciée, merci!!

OriginalL'auteur user1446988 | 2013-02-22