如何使用旧的偏好数据关闭 activity?
How to close activity with old preferences data?
我正在开发一个带有首选项的 android 应用程序。我有 2 个活动:MainActivity 和 PrefActivity。在 MainActivity 中,我显示带有偏好值的文本视图。在 PrefActivity 中,我从 ListPreference 更改了这个值。
当我在 PrefActivity 中按下后退按钮时,它会向我推荐带有来自首选项的新值文本的 MainActivity。但是,如果我再按一次后退按钮,它会将我转到旧的 MainActivity,其中包含来自偏好的旧值文本。我如何才能摆脱旧的 MainActivity?
从首选项中检索值的代码:
sp = PreferenceManager.getDefaultSharedPreferences(this);
String sharedpreferences = sp.getString("sharedpreference", "");
TextView tv_info = findviewbyid(R.id.tvinfo);
tv_info.settext(sharedpreferences);
请检查以下逻辑并执行。
你的 MainActivity
if (id == R.id.action_settings) {
Intent intent = new Intent(MainActivity.this, PrefActivity.class);
intent.putExtra("fwflag","from_menu_item");
startActivity(intent);
}
从 oncreate 方法的共享首选项中删除设置数据的实现,并将其粘贴到 onResume 方法:
@Override
public void onResume() {
super.onResume();
sp = PreferenceManager.getDefaultSharedPreferences(this);
String sharedpreferences = sp.getString("sharedpreference", "");
TextView tv_info = findviewbyid(R.id.tvinfo);
tv_info.settext(sharedpreferences);
}
然后在你的 PrefActivity
更新以下代码 - 删除 onbackpressed() 并放置 finish()。
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
在 PrefFragment 下
删除下面的代码
Intent intent = new Intent(PrefActivity.this, MainActivity.class);
startActivity(intent);
然后输入
finish();
现在试试。
如有疑问请联系我。
我正在开发一个带有首选项的 android 应用程序。我有 2 个活动:MainActivity 和 PrefActivity。在 MainActivity 中,我显示带有偏好值的文本视图。在 PrefActivity 中,我从 ListPreference 更改了这个值。 当我在 PrefActivity 中按下后退按钮时,它会向我推荐带有来自首选项的新值文本的 MainActivity。但是,如果我再按一次后退按钮,它会将我转到旧的 MainActivity,其中包含来自偏好的旧值文本。我如何才能摆脱旧的 MainActivity? 从首选项中检索值的代码:
sp = PreferenceManager.getDefaultSharedPreferences(this);
String sharedpreferences = sp.getString("sharedpreference", "");
TextView tv_info = findviewbyid(R.id.tvinfo);
tv_info.settext(sharedpreferences);
请检查以下逻辑并执行。
你的 MainActivity
if (id == R.id.action_settings) {
Intent intent = new Intent(MainActivity.this, PrefActivity.class);
intent.putExtra("fwflag","from_menu_item");
startActivity(intent);
}
从 oncreate 方法的共享首选项中删除设置数据的实现,并将其粘贴到 onResume 方法:
@Override
public void onResume() {
super.onResume();
sp = PreferenceManager.getDefaultSharedPreferences(this);
String sharedpreferences = sp.getString("sharedpreference", "");
TextView tv_info = findviewbyid(R.id.tvinfo);
tv_info.settext(sharedpreferences);
}
然后在你的 PrefActivity
更新以下代码 - 删除 onbackpressed() 并放置 finish()。
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
在 PrefFragment 下
删除下面的代码
Intent intent = new Intent(PrefActivity.this, MainActivity.class);
startActivity(intent);
然后输入
finish();
现在试试。
如有疑问请联系我。