我希望在上一个活动中退出应用程序(进程终止)时保存字符串的值,这样当我再次启动该应用程序时,我可以在第一个活动中检索该值。
我尝试了sharedpreferences
,但这并没有解决我的问题。这是代码段。
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Intent int1 = getIntent();
String pth = prefs.getString("pathreturned", "true");
在第一个活动中检索。
并将其保存在上一个活动中:
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
SharedPreferences.Editor e = myPrefs.edit();
e.putString("pathreturned", path);
e.commit();
答案 0 :(得分:3)
在上一个活动中,使用与之前使用的代码相同的代码...
而不是
SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
使用
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
答案 1 :(得分:2)
以下是通过SharedPreferences保存字符串的完整示例
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SharedPrefs extends Activity implements OnClickListener{
private EditText dataInput;
private TextView dataView;
private SharedPreferences sharedString;
public static final String myFile = "MySharedDataFile";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sharedprefs);
setUpVariables();
sharedString = getSharedPreferences(myFile, 0);
}
public void setUpVariables(){
dataInput = (EditText) findViewById(R.id.dataToUse);
dataView = (TextView) findViewById(R.id.showDataView);
Button save = (Button) findViewById(R.id.savedataButton);
Button load = (Button) findViewById(R.id.loadDataButton);
save.setOnClickListener(this);
load.setOnClickListener(this);
}
public void onClick(View arg0) {
switch(arg0.getId()){
case R.id.savedataButton:
String dataToSave = dataInput.getText().toString();
Editor storeData = sharedString.edit();
storeData.putString("key", dataToSave);
storeData.commit();
break;
case R.id.loadDataButton:
sharedString = getSharedPreferences(myFile, 0);
String savedData = sharedString.getString("key", "No data Found");
dataView.setText(savedData);
break;
}
}
}
答案 2 :(得分:1)
除非您知道哪个活动将是“最后一个”,否则您应该在每个活动结束时保存您的价值。覆盖onStop方法并将其保存在那里。