2017-02-20 3 views
1

J'ai ce code pour obtenir la valeur de SharedPreferences de edittext et puis l'envoyer à d'autres activités en quelque sorte je ne peux pas l'utiliser d'une autre activité ce que je manque dans mon code merci d'avancerecevoir la valeur de SharedPreferences partagé valeur d'une autre activité

-thats ma première activité pour obtenir SharedPreferences de edittext et je veux envoyer la valeur de celle-ci à la deuxième activité

public class NationalId extends Activity { 
public static final String MyPREFERENCES = "MyPrefs" ; 
public static final String Name = "nameKey"; 
SharedPreferences sharedpreferences; 

final Context context = this; 
private Button button; 
private TextView result; 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_national_id); 

    // components from main.xml 
    button = (Button) findViewById(R.id.button1); 
    result = (TextView) findViewById(R.id.tv1); 
    sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE); 

    // add button listener 
    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 


      // get prompts.xml view 
      LayoutInflater li = LayoutInflater.from(context); 
      View promptsView = li.inflate(R.layout.prompts, null); 

      android.app.AlertDialog.Builder alertDialogBuilder = new android.app.AlertDialog.Builder(
        context); 

      // set prompts.xml to alertdialog builder 
      alertDialogBuilder.setView(promptsView); 

      final EditText userInput = (EditText) promptsView 
        .findViewById(R.id.editTextDialogUserInput); 

      alertDialogBuilder 
        .setCancelable(false) 
        .setPositiveButton("OK", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog,int id) { 
            String n = userInput.getText().toString(); 
            SharedPreferences.Editor editor = sharedpreferences.edit(); 
            editor.putString(Name, n); 
            editor.commit(); 
            // edit text 
            result.setText(userInput.getText()); 
            Toast.makeText(NationalId.this,"saved:"+n,Toast.LENGTH_LONG).show(); 

           } 
          }) 
        .setNegativeButton("Cancel", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog,int id) { 
            dialog.cancel(); 
           } 
          }); 

      // create alert dialog 
      android.app.AlertDialog alertDialog = alertDialogBuilder.create(); 

      // show it 
      alertDialog.show(); 

     } 
    }); 
} 
} 

et ici ma deuxième activité que je veux recevoir la valeur dans

public class receive extends Activity { 



private Button button; 
private EditText etPhoneno; 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_opreator_mobily); 
    button = (Button) findViewById(R.id.buttonCall); 
    etPhoneno = (EditText) findViewById(R.id.editText1); 
    SharedPreferences prefs = getSharedPreferences("Name", 
      MODE_PRIVATE); 
    final String value = prefs.getString("n", "0"); 
    // add button listener\ 
    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      Toast.makeText(receive.this,"saved:"+value,Toast.LENGTH_LONG).show(); 


     } 
    }); 
} 

} 
+0

Que voulez-vous faire exactement? voulez-vous passer votre valeur String 'edittext' à une autre activité? ou avez-vous une valeur enregistrée dans SharedPreferences et que vous souhaitez utiliser dans cette deuxième activité? –

Répondre

5

Dans votre deuxième activité, vous essayez d'obtenir votre instance de préférences partagées avec un nom différent et également obtenir votre valeur enregistrée avec une clé différente.

Remplacer ceci:

SharedPreferences prefs = getSharedPreferences("Name", MODE_PRIVATE); 
final String value = prefs.getString("n", "0"); 

avec

SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
final String value = prefs.getString("nameKey", "0"); 
+0

Envisagez d'accepter la réponse si vous y êtes aidé. –

0

remplacer ces deux lignes ci-dessous

SharedPreferences prefs = getSharedPreferences("Name",MODE_PRIVATE); 
    final String value = prefs.getString("n", "0"); 

avec ces lignes

SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); 
final String value = prefs.getString("nameKey", "0");