我已阅读了很多文章,但所有文章都要设置首选项屏幕,然后点击首选项,说出编辑文本,然后提示编辑文本对话框。现在我只想要一个对话框,提示首次创建应用程序并将输入数据存储到首选项。在这种情况下我可以使用DialogPreference吗?
答案 0 :(得分:0)
是的,当然你可以......首先,在你的活动的创造中创建 -
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对象的布局....
答案 1 :(得分: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);
}
所以你不会总是得到一个“真实”的价值。 BTW,是将所有常量作为静态最终属性的最佳实践,因此您不会将更改拼错为“firstrun”,例如。