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
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
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
Vous devez vous connecter pour publier un commentaire.
Je pense que vous appelez
de manière incorrecte dans TestFragment2 de
loadPrefs()
,méthodeDe la docs le premier param (nom) est:
Donc, on dirait que vous êtes la création d'une nouvelle prefernces fichier appelé "CASE" dans TestFragment2.
peut-être changer
loadPrefs()
pour le même usage trouvé dans Settings.java ainsi, vous pouvez appeler les mêmes préférences utilisé précédemment comme suit:}
OriginalL'auteur petey