我正在开发一个移动应用程序,我需要通过所有活动提供用户对象,我不想使用Intent从每个活动发送到另一个活动。
有人可以帮我吗?
答案 0 :(得分:3)
如果您可以将其存储在:
我认为SharedPreferences实现起来要简单得多。 这是一个例子,你可以如何创建一个静态函数,你可以从你的所有活动中访问:
public class UserCreator
{
public static User getUser(Context context)
{
SharedPreferences prefs = context.getSharedPreferences("Name", Context.MODE_PRIVATE);
//Check if the user is already stored, if is, then simply get the data from
//your SharedPreference object.
boolean isValid = prefs.getBoolean("valid", false);
if(isValid)
{
String userName = prefs.getString("username", "");
String passWord = prefs.getString("password", "");
...
return new User(userName, passWord,...);
}
//If not, then store data
else
{
//for example show a dialog here, where the user can log in.
//when you have the data, then:
if(...login successful...)
{
SharedPreferences.Editor editor = prefs.edit();
editor.putString("username", "someusername");
editor.putString("password", "somepassword");
editor.putBoolean("valid", true);
...
editor.commit();
}
// Now, if the login was successful, then you can recall this function,
// and it will return a valid user object.
// if it was not, then it will show the login-dialog again.
return getUser(context);
}
}
}
然后从你所有的活动开始:
User user = UserCreator.getUser(this);
答案 1 :(得分:1)
编写一个扩展Application
类的类。并将全局参数放在那里。这些参数在应用程序上下文中有效。
答案 2 :(得分:1)
只需将该对象设为“公共静态”即可。 然后在其他活动中访问它,如:
PreviousActivity.userobj