Переменные в PreferenceActivity - PullRequest
       9

Переменные в PreferenceActivity

2 голосов
/ 23 февраля 2012

В моем приложении для Android я хочу создать диалог обратной связи, который будет отображаться при втором запуске приложения.Как я могу это сделать ?Могу ли я сделать это с помощью переменных в PreferenceActivity.Если переменная в операции предпочтения редактируется feks ++;будет ли это результатом переменной при следующем запуске приложения?

Редактировать: Я не получаю ни одного из предложенных ответов, могу ли я создать текстовый файл в ext или внутреннем хранилище при первом запуске приложения и проверить, существует ли файл

Ответы [ 3 ]

0 голосов
/ 23 февраля 2012

Это своего рода варварское решение, но у него не было Eclipse или Android-телефона рядом со мной. Вы можете сделать что-то подобное, я думаю:

protected boolean isSecondLaunchTime() {
    SharedPreferences settings = getPreferences(MODE_PRIVATE);
    int time = settings.getInt("launchTimes", 1);

    if(time==1 || time>2) return false;

    settings.edit().putString("launchTimes", ++time);
    settings.edit().commit();

    if(time==2) return true;
    else return false;
}

Удачи!

0 голосов
/ 23 февраля 2012

Использовать SharedPreferences:

public class MainActivity extends Activity {
  private SharedPreferences mSharedPrefs;
  private static final String PREF_LAUNCH_COUNTER = "launch_counter";
  private int mLaunchCount = 0;
  @Override
  public void onCreate(Bundle savedState) {
    mSharedPrefs = getPreferences(Context.MODE_PRIVATE);
    if (savedState != null) {
      mLaunchCount = savedState.getInt(PREF_LAUNCH_COUNTER, 1);
    } else {
      mLaunchCount = mSharedPrefs.getInt(PREF_LAUNCH_COUNTER, 1);
      if(mLaunchCount > 1) {
        //code to handle when the app was launched after the first time.
      } else {
        //code for when the app was launched for the first time..
      }
      mSharedPrefs.edit().putInt(PREF_LAUNCH_COUNTER, mLaunchCount++);

    }

  }
  @Override
  protected void onSaveInstanceState(Bundle outState) {
     outState.putInt(PREF_LAUNCH_COUNTER, mLaunchCount);
  }

}
0 голосов
/ 23 февраля 2012

Нет, переменные не сохраняются при перезапуске активности, поскольку весь объект собирается и создается заново.

Вы можете использовать SharedPreferences для хранения данных, которые должны сохраняться между запусками приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...