1

我已经阅读了很多文章,但都将设置首选项屏幕并单击首选项说编辑文本然后它会提示编辑文本对话框。现在我只想有一个对话框,它会在首次创建应用程序并将输入数据存储到首选项时进行提示。在这种情况下我可以使用 DialogPreference 吗?

4

2 回答 2

0

是的,当然你可以......首先,在你的活动创建的 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 对象显示任何布局......

于 2012-10-23T15:27:31.637 回答
0

在获得“真实”值后,不要忘记在首选项中保存“首次运行”标记:

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”。

于 2012-10-23T18:16:28.140 回答