我想從用戶處取得字符串,稍後在應用程序關閉時使用它..現在它只在應用程序在後臺時起作用,但當我關閉app..is有辦法做到這一點,或者我必須使用SharedPreference,如果我不得不使用它,請解釋如何,因爲我嘗試和失敗..感謝很多。即使應用程序關閉,存儲字符串
這是我在我的MainActivity代碼從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;
}
應用程序崩潰的字符串,並給出
「嘗試調用接口方法「java.lang.String中android.content .SharedPreferences.getString(java.lang.String,java.lang.String)'null object object「
at this line
reminder = sharedPreferences.getString("TAG", "");
這是類,其中i調用的方法
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();
}
,你能否告訴全班(ES)借爲[ mcve],而不僅僅是這些小代碼樣本? 'sharedPreferences'爲空,因爲它沒有被初始化。 –
我添加了我的整個MainActivity類..我只是張貼與我的問題相關的片段 –
請不要添加整個事情,請閱讀該鏈接。並非您添加的所有代碼都與SharedPreferences有關。 –