Как сделать подсказку для редактирования текста диалога при открытии приложения и сохранении данных по предпочтению?

Я прочитал много статей, но все собираются настроить экран предпочтений и щелкнуть по элементу предпочтений, например, изменить текст, а затем появится диалоговое окно редактирования текста. Теперь я просто хочу иметь диалоговое окно, которое будет подсказывать, когда приложение будет впервые создано, и сохранять входные данные по предпочтению. Могу ли я использовать 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" с ошибками.

Другие вопросы по тегам