すべてのアクティビティでユーザーオブジェクトを使用できるようにする必要があり、各アクティビティから他のアクティビティにインテントを使用して送信したくないモバイルアプリケーションを開発しています。
誰か助けてくれませんか?
すべてのアクティビティでユーザーオブジェクトを使用できるようにする必要があり、各アクティビティから他のアクティビティにインテントを使用して送信したくないモバイルアプリケーションを開発しています。
誰か助けてくれませんか?
あなたがそれを保存することができれば:
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);
クラスを拡張するクラスを作成しApplication
ます。そして、そこにグローバルパラメータを配置します。これらのパラメータは、アプリケーションのコンテキストで有効になります。
そのオブジェクトを「publicstatic」にするだけです。次に、次のような他のアクティビティでアクセスします。
PreviousActivity.userobj