0

すべてのアクティビティでユーザーオブジェクトを使用できるようにする必要があり、各アクティビティから他のアクティビティにインテントを使用して送信したくないモバイルアプリケーションを開発しています。

誰か助けてくれませんか?

4

3 に答える 3

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);
于 2012-08-26T11:10:11.123 に答える
1

クラスを拡張するクラスを作成しApplicationます。そして、そこにグローバルパラメータを配置します。これらのパラメータは、アプリケーションのコンテキストで有効になります。

于 2012-08-26T11:02:15.777 に答える
1

そのオブジェクトを「publicstatic」にするだけです。次に、次のような他のアクティビティでアクセスします。

PreviousActivity.userobj
于 2012-08-27T14:37:20.517 に答える