Kivy.Config用于存储与App类实例化相关的设置。
在导入任何其他 kivy 模块之前,它通常放置在 Python 脚本的最顶部。
此方法不是特定于平台的,但配置文件的默认路径会根据平台而变化。
from kivy.config import Config
desktop=Config.getint('kivy', 'desktop')
if desktop == 1:
print "This app is being run on a desktop."
DictStore 是一个将字典存储到磁盘的存储类。 filename 参数指定存储字典的文件的名称。
当调用 get 函数时,会返回一个 Python 字典。
from kivy.app import App
from kivy.uix.button import Button
from kivy.storage.dictstore import DictStore
class TestApp(App):
def build(self):
try:
store = DictStore(filename="MY_SETTINGS")
dictionary = store.get("my_important_variable")
print "\t\t\t KIVY 2: DictStore Succeeded",
except KeyError as err:
dictionary = {'name': 'None'}
print ("KIVY, 2, error: {}".format(repr(err)))
self.text = str(dictionary)
btn1 = Button(text=self.text)
btn1.bind(on_press=self.callback) #
return btn1
def callback(self, instance):
print('The button <%s> is being pressed, SAVING...' % instance.text)
try:
store = DictStore(filename="MY_SETTINGS")
store.put("my_important_variable", name="John")
except Exception as err:
print ("KIVY, 5, error: {}".format(repr(err)))
if __name__ == '__main__':
TestApp().run()
我将在下面提供用于访问共享首选项的代码。
如果您有兴趣了解更多信息,请阅读http://developer.android.com/guide/topics/data/data-storage.html http://developer.android.com/guide/topics/data/data-storage.html and https://kivy.org/planet/2015/04/python-on%C2%A0android/ https://kivy.org/planet/2015/04/python-on%C2%A0android/
from kivy.app import App
from kivy.uix.button import Button
import jnius
class TestApp(App):
def build(self):
try:
PythonActivity = jnius.autoclass('org.renpy.android.PythonActivity')
activity = PythonActivity.mActivity
cntxt = activity.getApplicationContext()
prefs = cntxt.getSharedPreferences("MY_PREFS", cntxt.MODE_PRIVATE )
print "KIVY ACQUIRED SHARED PREFS"
myVar = prefs.getString("my_important_variable", "Default String")
print "\tKIVY 3: Retrieved SharedPref"
except jnius.jnius.JavaException as err:
myVar="Error Loading Prefs."
print ("KIVY, 3, error: {}".format(repr(err)))
self.text = myVar
btn1 = Button(text=self.text)
btn1.bind(on_press=self.callback) #
return btn1
def callback(self, instance):
print('The button <%s> is being pressed, SAVING...' % instance.text)
try:
PythonActivity = jnius.autoclass('org.renpy.android.PythonActivity')
activity = PythonActivity.mActivity
cntxt = activity.getApplicationContext()
prefs = cntxt.getSharedPreferences("MY_PREFS", cntxt.MODE_PRIVATE)
editor = prefs.edit()
editor.putString("my_important_variable", "This is important!")
editor.commit()
print "\tKIVY: Added string <This is important!> to shared prefs."
except Exception as err:
print ("\tKIVY, 6, error: {}".format(repr(err)))
if __name__ == '__main__':
TestApp().run()