2013-05-30 1 views
0

Dans mon exemple, j'entre le numéro de mobile, le contenu du message dans une activité. Avant de quitter cette activité, je sauvegarde cette information dans "Préférence partagée". Dans d'autres activités, j'essaie d'obtenir cette foule non, message, je suis en mesure d'obtenir non mais incapable d'obtenir ce message (deuxième valeur). S'il vous plaît, aidez-moi à résoudre le problème.Je ne parviens pas à récupérer la deuxième valeur dans la préférence partagée

DefaultDetails.java

package com.example.nirbhaya; 

import java.util.regex.Pattern; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class DefaultDetails extends Activity implements OnClickListener{ 

    Button save,reset; 
    EditText dMob,dMsg,dEmail; 
    String defMobNo,defMsg,defEmail; 
    SharedPreferences DefaultData; 

    private static final String TAG = "DD-Activity"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.defaultdetails); 

     initializing(); 

    } 
    private void initializing() { 
     // TODO Auto-generated method stub 


     save = (Button)findViewById(R.id.bsave1); 
     reset = (Button)findViewById(R.id.bReset); 

     dMob = (EditText)findViewById(R.id.etDefMobNo); 
     dMsg = (EditText)findViewById(R.id.etDefMsg); 
     dEmail = (EditText)findViewById(R.id.etDefEmail); 

     save.setOnClickListener(this); 
     reset.setOnClickListener(this); 


    } 
    @Override 
    public void onClick(View arg0) { 
     // TODO Auto-generated method stub 
     switch(arg0.getId()) 
     { 
     case R.id.bsave1: 
      defMobNo = dMob.getText().toString(); 
      defMsg = dMsg.getText().toString(); 
      defEmail = dEmail.getText().toString(); 
       Log.i(TAG,"DONE"); 
       DefaultData = getSharedPreferences("defMobileNo",0); 
       SharedPreferences.Editor store = DefaultData.edit(); 
       store.putString("defMobileNo", defMobNo); 
       store.putString("defMessgae", defMsg); 
       store.putString("defEMail", defEmail); 
       store.commit(); 
       Intent openStartingPoint = new Intent (getApplicationContext(), CurrentDetails.class); 
       startActivity(openStartingPoint); 
      break; 
     case R.id.bReset: 
      ((EditText) findViewById(R.id.etDefMobNo)).setText(""); 
      ((EditText) findViewById(R.id.etDefEmail)).setText(""); 
      ((EditText) findViewById(R.id.etDefMsg)).setText(""); 
      break; 
     } 
    } 
} 

DefSMS.java

package com.example.nirbhaya; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.telephony.SmsManager; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.Toast; 

public class DefSms extends Activity{ 

    Button buttonSend; 
    String defNo,defMsg; 
    SharedPreferences DefaultData; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.defsms); 

     DefaultData = getSharedPreferences("defMobileNo",0); 
     final String defNo = DefaultData.getString("defMobileNo","Couldn't load data"); 

     DefaultData = getSharedPreferences("defMessgae",0); 
     final String defMsg = DefaultData.getString("defMessgae","Couldn't load data"); 

     buttonSend = (Button) findViewById(R.id.buttonSend); 

     buttonSend.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       try { 
        SmsManager smsManager = SmsManager.getDefault(); 
        smsManager.sendTextMessage(defNo, null, defMsg, null, null); 
        Toast.makeText(getApplicationContext(), "SMS Sent!", 
          Toast.LENGTH_LONG).show(); 
       } catch (Exception e) { 
        Toast.makeText(getApplicationContext(), 
          "SMS faild, please try again later!", 
          Toast.LENGTH_LONG).show(); 
        e.printStackTrace(); 
       } 

      } 
     }); 

    } 
} 

ici def aucun message se comme Impossible de charger les données s'il vous plaît aidez-moi

+1

supprimer cette ligne ** DefaultData = getSharedPreferences ("defMessgae", 0); ** dans DefSMS.java – Mahesh

+0

Oui, maintenant ça marche mais comment? – KCRaju

+0

Vous essayiez d'obtenir la préférence partagée nommée defMessgae qui n'existe même pas. Donc, quand vous essayez d'y accéder, Android va créer une nouvelle préférence avec la valeur par défaut. C'est pourquoi vous obteniez "Impossible de charger les données" – Mahesh

Répondre

0

Remplacer par ceci:

DefaultData = getSharedPreferences("defMobileNo",0); 
    final String defNo = DefaultData.getString("defMobileNo","Couldn't load data"); 

    final String defMsg = DefaultData.getString("defMessgae","Couldn't load data"); 
0

Voici comment essentiellement le travail sharedpreference

Pour stocker les valeurs

SharedPreferences preferences = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_WORLD_WRITEABLE); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("Name","myNameisnothing"); 
editor.commit(); 

Pour obtenir les valeurs

SharedPreferences prfs = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_PRIVATE); 
String name = prfs.getString("Name", ""); 

De cette façon, il 'd retourner la valeur du nom comme myNameisnothing. PS.Corriger moi si je me trompe.

0

Vous utilisez à tort DefaultData = getSharedPreferences("defMessgae",0); dans DefSMS.java

S'il vous plaît supprimer ce et cela fonctionnera très bien.

Vous essayiez d'obtenir la préférence partagée nommée defMessgae qui n'existe même pas. Donc, quand vous essayez d'y accéder, Android va créer une nouvelle préférence avec la valeur par défaut. C'est pourquoi vous obteniez "Impossible de charger les données"

Questions connexes