Отображение экрана настроек в первый раз, приложение запускается и связанные вопросы - PullRequest
7 голосов
/ 06 мая 2011

У меня есть приложение с 2 действиями: предпочтение и основное действие. Мне нужно, чтобы экран настроек отображался при первом запуске приложения, чтобы пользователь мог выполнить некоторую настройку.Я проверил ответы на эту тему, и они не очень понятны, но я понимаю, что это связано с проверкой того, что файл общих предпочтений пуст.

Может кто-нибудь дать мне код для сортировкии на какую деятельность я бы положил код?Кроме того, я все еще на стадии разработки, поэтому у меня уже есть настройки, как мне отменить это?

Заранее спасибо

Ответы [ 4 ]

14 голосов
/ 06 мая 2011

1) Когда ваше основное занятие начинается, проверьте логическое предпочтение со значением по умолчанию, равным false. Если это неверно, запустите предпочтительное действие, если оно истинно, то вы знаете, что сохранили его, чтобы оно было истинным!

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
boolean haveWeShownPreferences = prefs.getBoolean("HaveShownPrefs", false);

if (!haveWeShownPreferences) {
    // launch the preferences activity
} else {
   // we have already shown the preferences activity before
}

2) В вашей активности предпочтений сохраните то же логическое предпочтение со значением true в onCreate

SharedPreferences prefs = getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putBoolean("HaveShownPrefs", true);
ed.commit();
2 голосов
/ 06 мая 2011

Я предполагаю, что вы запускаете эмулятор, когда вы запускаете эмулятор, у вас есть выбор «стереть сохраненные данные», когда вы запускаете его, так что все будет так, как будто вы запустили его, как будто вы только что запустили приложение.В качестве альтернативы, вы можете зайти в настройки -> Приложения -> Ваше приложение -> Очистить данные.

Что касается вашего решения для кодирования, у меня сейчас нет ничего удобного, но вы должны начатьвашей основной деятельности, запустите процедуру / функцию, чтобы проверить, является ли файл sharedpreference пустым, и если он запускает действие предпочтения, в противном случае запустите основное действие.В качестве альтернативы, вместо проверки того, что файл пуст, вы можете увидеть, является ли значение, которое вы ищете для ввода пользователя (например, UserID), нулевым или нет.Если это значение не равно нулю, это означает, что приложение может продолжаться.

1 голос
/ 06 мая 2011

Я разобрался с этим битом кода в своей основной деятельности

if (prefs.getString("edittextpref", null) == null)
    {
        startActivity(new Intent(this, Preferences.class));
        return;
    }

}

Он просто проверяет, является ли одно из ваших значений пустым, но вы должны поместить это в конец onCreate или иначекогда вы вернетесь на главную страницу, она будет пустой.

0 голосов
/ 19 сентября 2013

Я делаю что-то вроде этого.И это работает для меня.

String path = "//data//data//"+this.getPackageName()+"//shared_prefs//feedbackpref.xml";
boolean exists = (new File(path)).exists(); 
if (exists) {
    introWindowNavigate=false;                                  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...