【发布时间】:2015-10-19 11:55:22
【问题描述】:
我有这个活动,它将使用意图将值传递给 mainactivity,并尝试对其进行烘烤以查看它是否传递了值并且我实现了它!
意味着它的工作,我也使用 sharedpreferences 将这些值保存到 textview。但是当我关闭应用程序并尝试再次使用 toast 来检查它是否具有来自另一个活动的值而不使用意图时,toast 什么也不显示。
有什么方法可以同时使用共享首选项将其永久保存在 mainactivity 中?
编辑
主活动
SA prefcontacts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
final String prefcon1 = intent.getStringExtra("prefcon1");
final String prefcon2 = intent.getStringExtra("prefcon2");
final String prefcon3 = intent.getStringExtra("prefcon3");
final String prefcon4 = intent.getStringExtra("prefcon4");
final String prefcon5 = intent.getStringExtra("prefcon5");
Button show = (Button)findViewById(R.id.button3);
show.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
Toast.makeText(getApplicationContext(), prefcon1, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), prefcon2, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), prefcon3, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), prefcon4, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), prefcon5, Toast.LENGTH_SHORT).show();
}
});
}
SA.class
EditText et1, et2, et3, et4, et5;
Button btnSave;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_s);
btnSave = (Button)findViewById(R.id.btnSave);
et1 = (EditText)findViewById(R.id.editText1);
et2 = (EditText)findViewById(R.id.editText2);
et3 = (EditText)findViewById(R.id.editText3);
et4 = (EditText)findViewById(R.id.editText4);
et5 = (EditText)findViewById(R.id.editText5);
SharedPreferences settings = getSharedPreferences("MY_PREFS", 0);
et1.setText(settings.getString("prefcon1", ""));
et2.setText(settings.getString("prefcon2", ""));
et3.setText(settings.getString("prefcon3", ""));
et4.setText(settings.getString("prefcon4", ""));
et5.setText(settings.getString("prefcon5", ""));
btnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
Toast.makeText(getApplicationContext(), "Preferences Saved!", Toast.LENGTH_LONG).show();
Intent intent = new Intent (SA.this, MainActivity.class);
intent.putExtra("prefcon1", et1.getText().toString());
intent.putExtra("prefcon2", et2.getText().toString());
intent.putExtra("prefcon3", et3.getText().toString());
intent.putExtra("prefcon4", et4.getText().toString());
intent.putExtra("prefcon5", et5.getText().toString());
startActivity(intent);
}
});
}
【问题讨论】:
-
使用该链接中的示例,将您的数据保存到活动 1 中的首选项,并在 mainactivity 中检索它
-
分享代码。|如果您使用的是 saharedprefrences,则无需将其传递给另一个活动,它可用于整个应用程序
-
@TimCastelijns 我认为情况不同
-
很难说。你没有告诉我们很多关于你的情况
标签: android