地区选择和罗盘十字
This commit is contained in:
71
lib/states/region.dart
Normal file
71
lib/states/region.dart
Normal file
@ -0,0 +1,71 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import '../models/region.dart';
|
||||
|
||||
class RegionProvider extends ChangeNotifier {
|
||||
RegionProvider() {
|
||||
loadRegionData();
|
||||
}
|
||||
|
||||
String _provinceName = '';
|
||||
String _cityName = '';
|
||||
String _tempProvinceName = '';
|
||||
String _tempCityName = '';
|
||||
|
||||
String get provinceName => _provinceName;
|
||||
|
||||
String get cityName => _cityName;
|
||||
|
||||
String get tempProvinceName => _tempProvinceName;
|
||||
|
||||
String get tempCityName => _tempCityName;
|
||||
|
||||
final Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
|
||||
|
||||
loadRegionData() {
|
||||
_prefs.then((prefs) {
|
||||
if (prefs.getString('REGION') != null) {
|
||||
final region =
|
||||
RegionData.fromJson(jsonDecode(prefs.getString('REGION')));
|
||||
_provinceName = region.provinceName;
|
||||
_cityName = region.cityName;
|
||||
_tempProvinceName = region.provinceName;
|
||||
_tempCityName = region.cityName;
|
||||
notifyListeners();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
updateRegion(pname, cname) {
|
||||
// _provinceName = pname;
|
||||
// _cityName = cname;
|
||||
_tempProvinceName = pname;
|
||||
_tempCityName = cname;
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
//将临时变量保存到正式变量,并保存本地
|
||||
saveRegion() {
|
||||
_provinceName = _tempProvinceName;
|
||||
_cityName = _tempCityName;
|
||||
print(_tempCityName);
|
||||
final region = <String, dynamic>{
|
||||
"provinceName": _tempProvinceName,
|
||||
'cityName': _tempCityName
|
||||
};
|
||||
_prefs.then((prefs) {
|
||||
prefs.setString('REGION', jsonEncode(region));
|
||||
});
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
resetTemp() async {
|
||||
_tempProvinceName = _provinceName;
|
||||
_tempCityName = _cityName;
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user