2013-05-30 1 views
0

В моем примере я вводил номер мобильного телефона, содержимое сообщения в одном действии. Прежде чем покинуть эту деятельность, я сохраняю эту информацию в «Общие предпочтения». В другой деятельности я пытаюсь получить те mob no, message, я могу получить, но не могу получить это сообщение (второе значение) .please помогите мне решить проблему.Я не могу получить второе значение в общих предпочтениях

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(); 
       } 

      } 
     }); 

    } 
} 

Здесь Защиту не получаю сообщение как Не удалось загрузить данные пожалуйста, помогите мне

+1

удалить эту строку ** DefaultData = getSharedPreferences ("defMessgae", 0); ** в DefSMS.java – Mahesh

+0

Да, теперь это работает, но как? – KCRaju

+0

Вы пытались получить общую привилегию defMessgae, которая даже не существует. Поэтому, когда вы пытаетесь получить к нему доступ, андроид создаст новое предпочтение со значением по умолчанию. Вот почему вы получали «Не удалось загрузить данные» – Mahesh

ответ

0

Заменить это:

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

Это как в основном sharedpreference работа

для хранения значений

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

Чтобы получить значения

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

Таким образом, он 'd возвращает значение имени как myNameisnothing. PS.Используйте меня, если я ошибаюсь.

0

Вы неправильно используете DefaultData = getSharedPreferences("defMessgae",0); в DefSMS.java

Пожалуйста, удалите это, и он будет работать нормально.

Вы пытались получить общую привилегию defMessgae, которая даже не существует. Поэтому, когда вы пытаетесь получить к нему доступ, андроид создаст новое предпочтение со значением по умолчанию. Вот почему вы получали «Не удалось загрузить данные»

Смежные вопросы