0

我有一个包含 7 个页面的应用程序,用户可以通过一个按钮浏览这 7 个页面。他可以使用移动设备自己的按钮返回上一页。如前所述,如果我单击按钮,用户将转到下一页。此外,如果用户单击设备的“返回”按钮,它会返回到上一个活动,并且所有输入的值都保持不变。但是,我想要的是,如果用户进入下一个活动并且用户在该活动中输入了一些值之前,这些值将保留在那里。(不像现在那样为空)。我猜这是因为每次单击按钮时都会启动一个新活动。

有没有一种方法可以在不使用 SharedPreferences、XML 等的情况下实现这一点......?

4

3 回答 3

3

当按下背部时,默认情况下活动被破坏。保存其数据的唯一方法是将其存储在某处,就像SharedPreferences避免这种活动破坏一样,您可以将其设置为single instance然后menifest在后按调用此方法moveTaskToBack(true);现在,每当您再次启动活动时,它都不会重新创建自身。还删除 super.onBackPressed(); 方法从那个方法。( onBackPressed())

在清单中这样做

<activity android:name=".YourActivity" android:launchMode="singleInstance" />
于 2013-10-28T07:57:17.053 回答
1

在开始另一个活动之前,您可以将键值对(如哈希图)放入意图中,然后您可以在您正在调用的活动中检索这些值。您可以查看:-

Intent returnIntent = new Intent(getApplicationContext, SecondActivity.class);
returnIntent.putExtra("name","abc");
startActivity(returnIntent,11);

在你的其他活动结果方法中,你可以做

if(requestCode == 11){
Bundle bundle = data.getExtras();
String name = bundle.getString("name");
}

你可以看看这个。

于 2013-10-28T08:44:06.023 回答
0

您可以通过调用 startActivityForResult() 来启动下一个活动来实现这一点......当您返回上一个活动时,您的数据将保留在屏幕上

于 2013-10-28T08:02:48.673 回答