这个问题更像是关于你们如何做到这一点的讨论。
我正在开发一个具有头像创建的应用程序,但这种创建发生在两个不同的活动中。
在第一个中,用户选择是男人还是女人和名字,在下一个活动中,用户必须选择他的脸,头发,衣服等。
如果用户是男性或女性,头发等的视图会发生变化,您如何实现将性别值传递给所有视图的方法?
我正在考虑使用静态成员来保存值,以便我可以访问我的视图,或者我应该使用SharedPreferences来实现它。
我认为使用SharedPreferences是一种更优雅的方式,但我想知道是否没有其他更好,更优雅的方法。
有没有人想过其他实现?
答案 0 :(得分:2)
如果它只是一个小的信息,如"性别"我没有看到使用"静电"变量(当然,如果你的应用程序在后台崩溃,静态变量将变为null)。
如果您希望信息为persistent,那么SharedPreference会很好(但我不认为你需要这个)。
您还可以选择扩展application类以跨活动存储静态数据。
答案 1 :(得分:1)
您可以将性别传递给具有启动活动Intent的下一个Activity。例如:
Intent intent = new Intent(this, NEXT_ACTIVITY.class)
intent.putExtra("gender", genderVariable)
startActivity(intent);
并在onCreate()上检索NEXT_ACTIVITY类中的值,如下所示:
String genderVariable = ""
Bundle parms = getIntent().getExtras()
if (parms != null) genderVariable = parms.getString("gender")
然后,将性别传递给所有视图,并将genderVariable保存在SharedPreferences或onSavedInstanceState包中。我更喜欢onSavedInstanceState。
希望它有所帮助。
答案 2 :(得分:0)
我认为我认为有很多方法可以做得更好。它取决于您想要存储的数据类型。
答案 3 :(得分:0)
使用SharedPreferences是在整个应用程序中共享某些全局值的更好方法。