我不太明白你的第一个问题,但它听起来像你正在启动一项新的活动,当你退出并回来时,一切都被重置。如果您在从手机的菜单按钮中选择选项后启动新的活动,则应实施一种将数据保存到主要活动的共享首选项的方法。应该在onPause(),onDestroyed()或onStop()方法上调用此方法。您还可以在onResume()上添加一个方法,其中活动检查是否存在共享首选项中存储的任何数据,如果是,则进行所需的更改。
关于你的第二个问题......我有点不明白要么它。当你开始一个新的活动并且想要传递数据时使用新的intent和putextra。视图不是“启动”的,它们只有在你想要的时候才会膨胀并显示出来。我做了一次应用程序,在一次活动中拥有所有内容,并且始终只使用setContentView()方法。从长远来看,这只是复杂的一切。保持简单并启动活动更容易。这里是传递一些变量的例子给新活动: 在我的主要活动(FirstActivity)我有: (点击newActivityButton时)
case R.id.newActivityButton:
Intent mIntent = new Intent(FirstActivity.this,SecondActivity.class);
String[] luckyNumbers = {
luckyNumber[0].getText().toString(),
luckyNumber[1].getText().toString(),
luckyNumber[2].getText().toString(),
luckyNumber[3].getText().toString(),
luckyNumber[4].getText().toString(),
luckyNumber[5].getText().toString()};
mIntent.putExtra("luckyNumbers", luckyNumbers);
mIntent.putExtra("message", messageField.getText().toString());
FirstActivity.this.startActivity(mIntent);
break;
luckyNumbers []是textviews的数组。
然后在我的NewActivity的onCreate(),我有:
message = getIntent().getExtras().getString("message");
Log.i("TAG", message);
luckyNumbers = getIntent().getExtras().getStringArray("luckyNumbers");
cv.setLuckyNumbers(this.luckyNumbers);
cv.setMessage(this.message);
其中cv只是我自己的方法
创建一个自定义视图