- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
不理解互联网上所有关于 Flutter 中的共享首选项的解释,经过三天的搜索和尝试后,我有点(有点不是真的)沮丧。所以我在这里呼唤我的英雄。
我正在开发我的第一个 Flutter 应用程序。它用于计算用户项目所需的重量体积。
我有 4 个屏幕,由底部栏激活。 1 屏幕是设置屏幕,用户可以在其中输入 (1) 混合比,(2) 液体重量和 (3) bool 值(如果他们测量的是体积(ml)的重量(gr))。如果他们正在使用音量,则选项 2 不是必需的,然后隐藏。
我希望他们将其填写为他们的设置。我需要这些设置用于其他页面之一的公式。如果他们什么都不填,我有默认值。我不希望他们每次都必须填写这些设置,而只是一次。如果他们使用另一种液体,或者两次。 :-)
我已经尝试过 SQFLITE 包,但我认为 SHARED PREFERENCES 包是我需要的。我在 YouTube 上观看了所有这些视频,我用谷歌搜索、阅读并尝试了很多项目,但我仍然不明白如果必须做什么以及我把代码放在哪里。似乎总是如果我重新输入专家正在输入的内容,我就是唯一失败的人。
是的,我是一个初学者(你们都曾经是),我现在正在为这个话题而苦苦挣扎。我的问题是:1. SHARED PREFERENCES 包是我应用程序的最佳解决方案吗?2.写数据库的设置放在哪里。3. 我如何在这个数据库中第一次放置默认值。4. 是否可以在设置屏幕上设置一个值,然后在另一个页面上获取该值,而不使用导航(因为我使用底部栏)。
读到最后:谢谢!
import 'package:flutter/material.dart';
import 'constants.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'dart:async';
class SettingsPage extends StatefulWidget {
@override
SettingsPageState createState() => SettingsPageState();
}
class SettingsPageState extends State<SettingsPage> {
int mixingRatio = 50;
int liquidGravity = 115;
bool weight = true;
@override
void initState() {
super.initState();
}
Future<int> _getIntFromSharedPref() async {
final prefs = await SharedPreferences.getInstance();
final mixingRatio = prefs.getInt('mixingRatio');
if (mixingRatio == null) {
return 50;
}
return mixingRatio;
}
Future<void> _resetMixingRatio() async {
final prefs = await SharedPreferences.getInstance();
await prefs.setInt('mixingRatio', 50);
}
-----------------
onPressed: () {
setState(
() {
weight = true;
weightOrVolume = 'GR';
},
);
},
最佳答案
回答您的问题。
Is the package SHARED PREFERENCES the best solution for my app?
对于保存设置,这当然是最好的包。
Where do I put the setting for writing the database.
您可以使用 SharedPreference
实例将设置保存在任何地方,例如:
sharedPrefs.putInt("key", 10);
How do I place a default value for the first time in this database
你可以使用 dart 语法获取它 ??
int savedValue = sharedPrefs.getInt("key") ?? 0; // default value will be 0
Is it possible to set a value on the Setting screen, and get the value on another page, without using the Navigation.
是的,您可以通过创建全局变量或在当前屏幕上使用 getInt
检索它来实现。
关于flutter - 使用用户的偏好来计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57124921/
typedef unsigned char uChar; typedef signed char sChar; typedef unsigned short uShort; typedef signe
我正在编写一个 android 应用程序并想做一个 SettingsActivity。 我的问题是我的矢量可绘制对象不会使其颜色适应夜间或白天主题。 ic_palette_black_24dp.xml
我正在使用多语言闹钟 android 应用程序工作: 1 个 xml 文件 [alarm_settings.xml] 2 个 string.xml 文件 [英语和阿拉伯语] 问题是本地化没有以正确的方
我正在尝试创建一个 SettingsActivity 并使用扩展 PreferenceFragment 的 Fragment 来实现此目的。我的 Activity 正在显示,而首选项不是。 Setti
我知道在使用自动属性时,编译器会在屏幕后面创建自己的支持字段。然而,在我阅读以学习的许多程序中,我看到人们明确地写 private int _backingField; public int Prop
在写入事件日志时,我可以创建一个 EventLog 实例,将其作为成员变量保存,并在每次我想记录消息时对其调用 WriteEntry(string message)。 或者,我可以只调用静态版本:Ev
如何通过ListPreference值设置依赖? 最佳答案 正如 Snicolas 已经指出的那样,依赖 xml 功能仅检查 bool 状态(= 如果引用的键为真或在其中设置了值)。如果启用,您可
如果我使用 Preference API存储用户或系统偏好,它们在 Windows 和 Unix 上存储在哪里? 最佳答案 对于 Windows,systemRoot 和 userRoot 分别存储在
测试 android.preference.PreferenceActivity 时,我收到以下警告: warning: [deprecation] getFragmentManager() in A
在优先级Activity中我们可以使用这两个方法SetContentView(R.layout.main) 和 addXmlFromResources(R.xml.Preferences) 用于自定义
在我的 Android 应用程序中,我有一个偏好 Activity ,让用户可以覆盖应用程序的语言。为此,我在每个 Activity 的 onResume() 中调用此函数,然后重置内容 View :
在我的preferences.xml 中,我有一个这样的偏好元素: 我想分配 onClick 事件,所以如果用户点击它,我将能够打开新的 Intent 或浏览器。我尝试像使用按钮一样进行操作,但这似
这是我的PreferenceActivity(我的主要 Activity 的内部类) public static class TestSettings extends PreferenceActivi
对于 MVC Razor 中的简单标签,您更喜欢使用简单的 HTML 还是使用扩展方法例如 Male Or @Html.Label("male", "Male") 我觉得有时使用简单的 HTML
我有一个很奇怪的问题。当我在我的设置- Activity 中滚动时,一些复选框在不再显示时会发生变化。例如:我取消选中广告复选框,然后向下滚动,当复选框完全消失时,复选框会重置。只有当我取消选中默认值
我有一个带有 PreferenceActivity 的 Android 应用程序,其中一个首选项条目启动了我自己的 Activity 之一(“关于”屏幕)。该条目如下所示: 此外(这很重
实现“夜间主题”。我不知道如何更改 ListPreference 的背景颜色。 PreferenceActivity "day" theme PreferenceActivity night them
这个问题在这里已经有了答案: When to use ES6 class based React components vs. functional ES6 React components? (5
我在私有(private)模式下启动了 Firefox 并打开了 youtube。我看到的第一件事是根据我以前的 watch 推荐的视频。但是我没有登录,我处于私有(private)模式,为什么 yo
我试图在偏好 Activity 中展示广告,但它从未出现过。 Logcat 始终显示消息“没有足够的空间来显示广告!想要:,有:” 这就是我制作广告的方式。我对广告有自定义偏好 public clas
我是一名优秀的程序员,十分优秀!