0

ユーザーが自分の情報(名前、DoB、身長、体重など)を入力し、[送信]をクリックするアプリのユーザープロファイルセクションを作成しようとしています。この後、彼はアプリのメインメニューに移動します。

私が抱えている問題は、アプリを閉じて再度実行すると、明らかにアプリがユーザープロファイルセクションを再度表示し、ユーザーに情報の入力を求める結果になることです。

私は、ユーザーが入力した情報をアプリが保存して記憶する方法を模索してきました。たとえば、ユーザーが最初にアプリを使用するときに、ユーザープロファイルセクションを取得して情報を入力します。ユーザーがアプリを閉じて再度開くと、すぐにメインメニューに移動します。

これはPreferencesで少し達成できることはわかっていますが、TextViewなどのオプションが増えるように、通常のレイアウト(LinearLayout)を使用したいと思います。

環境設定の代わりにLinearLayoutだけを使用してこれを実現する方法はありますか?

カスタム設定の作成も検討してきましたが、特に役立つものはありませんでした。

前もって感謝します。

4

3 に答える 3

1

を使用しSharedPreferencesます。

  1. アプリケーションで初回実行を確認し、ユーザーのプロファイルを入力するレイアウトを表示します。

  2. 共有設定で最初に実行するためのブールフラグを保存した後、プロファイル画面が再び表示されなくなります。

アプリケーションが最初に実行されているかどうかを確認するをご覧ください

アップデート:

このFirstRun()コードonCreate()メインアクティビティのに入れます。

private void FirstRun()
{
 SharedPreferences settings = this.getSharedPreferences(MainActivity.PREFS_NAME, 0);
 boolean firstrun = settings.getBoolean("firstrun", true);
 if (firstrun)
 {
  // Checks to see if we've ran the application b4

  SharedPreferences.Editor e = settings.edit();
  e.putBoolean("firstrun", false);
  e.commit();
  // Display User Profile Screen    
 }
}
于 2012-11-19T13:04:26.653 に答える
0
@Override
public boolean saveUserData(UserModel userModel, Context context) {


    email = userModel.getEmail();
    firstName = userModel.getFirstName();
    lastName = userModel.getLastName();
    twitterId = userModel.getTwitterId();

    SharedPreferences userData = context.getSharedPreferences(APP_NAME,
            Context.MODE_PRIVATE);
    SharedPreferences.Editor setUserDataPreference = userData.edit();

    setUserDataPreference.putString(EMAIL, email);
    setUserDataPreference.putString(FIRST_NAME, firstName);
    setUserDataPreference.putString(LAST_NAME, lastName);
    setUserDataPreference.putString(TWITTER_ID, twitterId);

    setUserDataPreference.commit();

    return true;
}




 @Override
        public UserModel getUserData(Context context) {
            UserModel userModel = new UserModel();

            SharedPreferences userData = context.getSharedPreferences(APP_NAME,
                    Context.MODE_PRIVATE);

            email = userData.getString(EMAIL, "");
            firstName = userData.getString(FIRST_NAME, "");
            lastName = userData.getString(LAST_NAME, "");
            twitterId = userData.getString(TWITTER_ID, "");


            userModel.setEmail(email);
            userModel.setFirstName(firstName);
            userModel.setLastName(lastName);
            userModel.setTwitterId(twitterId);

            return userModel;
        }
于 2012-11-19T13:11:09.023 に答える
0

この方法で情報を保存するには、sharedPreference を使用します。

        final SharedPreferences pref1 = getSharedPreferences("myapp", MODE_PRIVATE);
        SharedPreferences.Editor editor = pref1.edit();
        editor.putString("userid", "success");
        editor.commit();

それから値を取得するには、以下のコードを使用します..

final SharedPreferences pref1 = getSharedPreferences("myapp", MODE_PRIVATE);
String str1= pref2.getString("userid", null);

またはSqliteDatabaseを使用しようとするか、アプリケーションクラスである可能性があります..これにより、必要に応じて情報が保存されます。

于 2012-11-19T13:09:31.533 に答える