【发布时间】:2016-09-28 14:34:01
【问题描述】:
我是 Android 编程新手,遇到了一个无法克服的问题。我已经使用 Android Studio 示例构建了一个 TabHost 应用程序。当用户按下按钮时,我想调用另一个显示设置页面的活动(我从 gui 创建了一个基本活动“MySettings”)。
问题1:当activity关闭时,MainActivity重新运行onCreate,并且选中的选项卡回到启动选项卡。有没有办法在最后选择的选项卡上继续?
调用代码是:
public void buttonPressed(View view) {
Intent intent = new Intent(MainActivity.this,MySettings.class);
MainActivity.this.startActivity(intent);
}
问题 2:我无法在两个活动之间共享数据:
主活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedpreferences.edit();
}
我的设置:
public class MySettings extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_inr);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedpreferences.edit().putInt("myvar",200);
sharedpreferences.edit().apply();
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
};
此代码运行,但当 MySettings 活动关闭时,调用活动 MainActivity 中的“myvar”未更新。
public void setImage(){
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(this);
int cvt=sharedpreferences.getInt("myvar",0);
}
【问题讨论】:
标签: java android android-activity sharedpreferences android-tabhost