Ich versuche String vom Benutzer zu nehmen und es später zu verwenden, wenn die App geschlossen ist .. Jetzt funktioniert es nur, wenn die App im Hintergrund ist, aber ich verliere die Zeichenfolge, wenn ich die schließen app..is gibt es eine Möglichkeit, es so zu tun, oder ich SharedPreference verwenden muss und wenn ich es verwenden muss bitte erklären, wie, weil ich versuchte und fehlgeschlagen..thanks viel.Speichern von Zeichenfolge, auch wenn die App geschlossen ist
dies ist mein Code in meinem MainActivity auf den String aus den EditText
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
private static String reminder;
private EditText et;
private Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialize variables
sharedPreferences = getSharedPreferences("MyPREFERENCES",Context.MODE_PRIVATE);
final SharedPreferences.Editor editor = sharedPreferences.edit();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
et = (EditText) findViewById(R.id.Name);
reminder = et.getText().toString();
if(reminder == null){
reminder = "TWEAK!";
}
editor.putString("TAG",reminder);
editor.commit();
// do stuff
}
// get the user's string
public String getRem() {
reminder = sharedPreferences.getString("TAG", "");
return reminder;
}
die App stürzt ab und gibt
„Versuch Schnittstelle Methode aufzurufen‚java.lang.String android.content .SharedPreferences.getString (java.lang.String, java.lang.String)‘auf einer null-Objekt-Referenz“
an dieser Linie
reminder = sharedPreferences.getString("TAG", "");
das ist die Klasse, in der ich die Methode
public class Notifications extends BroadcastReceiver {
private String rem;
// set notification
@Override
public void onReceive(Context context, Intent intent) {
// object to access MainActivity methods
MainActivity main = new MainActivity();
rem = main.getRem();
}
Können Sie die ganze Klasse zeigen Borrowed verwenden (n) in der Nähe [ mcve], nicht nur diese kleinen Code-Beispiele? 'sharedPreferences' ist null, weil es irgendwie nicht initialisiert wird. –
Ich habe meine ganze MainActivity-Klasse hinzugefügt ... ich habe gerade Snippets gepostet, die sich auf meine Frage beziehen –
Fügen Sie nicht die ganze Sache hinzu, lesen Sie bitte diesen Link. Nicht der gesamte von Ihnen hinzugefügte Code ist mit den SharedPreferences verknüpft. –