【问题标题】:Saving data from Spinners, RadioGroups ,EditText, across several activities to re-use将 Spinners、RadioGroups、EditText 中的数据保存到多个活动中以重复使用
【发布时间】:2016-10-16 21:48:57
【问题描述】:

对于 android 非常陌生,尽管我已经构建了几个基本应用程序,但我的经验有限,所以如果您能考虑到这一点来组织任何回复,我将不胜感激。

我想:在注册/登录部分之后,通过两个或三个活动收集来自微调器、单选按钮和文本输入的用户选择,并在第四个活动中显示收集的数据,以便可以检查它返回必要时进行更改。

如果正确,则继续进行第五项活动,在该活动中,数据被结构化并通过电子邮件发送到注册部分提供的电子邮件地址。我已经制作了基本结构,包括带有字符串数组的 Spinners,并且确实制作了一个可以根据需要工作的应用程序,将带有附加功能的数据传递给下一个活动,但是我想将数据传递给最终活动,而不仅仅是下一个活动。如果可以避免的话,我真的不想使用数据库,但可能是这样,当所有数据都被收集和审查后,并且在出现问题并且应用程序崩溃时尝试了 Sharedpreferences 我很难找出原因,所以在试图让事情更清楚我已经把所有这些都剥离回基本结构,只留下工作的微调器、无线电组和导航按钮,我就在这里。

由于我留下的应用程序结构有 5 个活动和 5 个类文件,我犹豫是否发布代码,因为我不确定这是否已完成,但我愿意在这个问题上得到指导。

【问题讨论】:

    标签: android sharedpreferences spinner survey


    【解决方案1】:

    在您的第一个活动中,从用户那里收集数据后,您可以使用Intent.putExtras(Bundle) 将它们添加到您的Intent。这是一个使用用户在EditText 中输入的用户名的示例。

    String username = myEditText.getText().toString();
    Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
    Bundle extras = new Bundle();
    extras.putString("username",username);
    intent.putExtras(extras);
    startActivity(intent);
    

    在第二个活动中,您可以像这样从onCreate 中的 extras 中获取数据:

    Bundle extras = this.getIntent().getExtras();
    String username = extras.getString("username");
    

    进入第三个/第四个...活动时,您可以执行相同的步骤来携带您用于打开活动的Intent 中的数据。首先从 extras 中获取数据,然后将它们添加到下一个 intent 的 extras 中。

    您可能希望将变量设为全局变量,或者因为您可能希望在无法访问它们的 onClick 中使用它们。

    【讨论】:

    • 感谢您提供的解决方案,这正是我想要的,因为它让我可以替代数据库和 Sharedpreferences,我发现这两者在某些情况下都超过了顶部。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2013-04-13
    • 2022-06-27
    相关资源
    最近更新 更多