Как сделать подсказку для редактирования текста диалога при открытии приложения и сохранении данных по предпочтению?
Я прочитал много статей, но все собираются настроить экран предпочтений и щелкнуть по элементу предпочтений, например, изменить текст, а затем появится диалоговое окно редактирования текста. Теперь я просто хочу иметь диалоговое окно, которое будет подсказывать, когда приложение будет впервые создано, и сохранять входные данные по предпочтению. Могу ли я использовать DialogPreference в этом случае?
2 ответа
Да, конечно, вы можете... Во-первых, в onCreate вашей деятельности создать -
boolean firstrun = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getBoolean("firstrun", true);
Тогда проверьте -
if (firstrun) {
//Call HERE your showDialog, for example...
showDialog(DIALOG_TEXT_ENTRY1);
}
И последнее - просто переопределить onCreateDialog с помощью... -
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
//main title
case DIALOG_TEXT_ENTRY1:
LayoutInflater factorymain = LayoutInflater.from(this);
final View textEntryViewMain = factorymain.inflate(R.layout.main_title_dialog, null);
.................
............
С помощью Layoutinflater, как показано выше, вы можете показать любой макет с любыми объектами editText, которые вы хотите....
Не забудьте сохранить маркер "firstrun" в настройках после получения его "истинного" значения:
SharedPreferences prefs = getSharedPreferences("PREFERENCE", MODE_PRIVATE);
boolean firstrun = prefs.getBoolean("firstrun", true);
if (firstrun) {
SharedPreferences.Editor editor = prefs.edit()
editor.putBoolean("firstrun", false);
editor.apply();
//Call HERE your showDialog, for example...
showDialog(DIALOG_TEXT_ENTRY1);
}
Таким образом, вы не всегда получите "истинное" значение. Кстати, лучше всего ставить все константы в качестве статических конечных свойств, чтобы, например, у вас не было изменений в "firstrun" с ошибками.