69 lines
1.7 KiB
Python
69 lines
1.7 KiB
Python
|
"""
|
||
|
AndroidToast
|
||
|
============
|
||
|
|
||
|
.. rubric:: Native implementation of toast for Android devices.
|
||
|
|
||
|
.. code-block:: python
|
||
|
|
||
|
from kivymd.app import MDApp
|
||
|
# Will be automatically used native implementation of the toast
|
||
|
# if your application is running on an Android device.
|
||
|
# Otherwise, will be used toast implementation
|
||
|
# from the kivymd/toast/kivytoast package.
|
||
|
from kivymd.toast import toast
|
||
|
|
||
|
KV = '''
|
||
|
BoxLayout:
|
||
|
orientation:'vertical'
|
||
|
|
||
|
MDToolbar:
|
||
|
id: toolbar
|
||
|
title: 'Test Toast'
|
||
|
md_bg_color: app.theme_cls.primary_color
|
||
|
left_action_items: [['menu', lambda x: '']]
|
||
|
|
||
|
FloatLayout:
|
||
|
|
||
|
MDRaisedButton:
|
||
|
text: 'TEST KIVY TOAST'
|
||
|
on_release: app.show_toast()
|
||
|
pos_hint: {'center_x': .5, 'center_y': .5}
|
||
|
|
||
|
'''
|
||
|
|
||
|
|
||
|
class Test(MDApp):
|
||
|
def show_toast(self):
|
||
|
'''Displays a toast on the screen.'''
|
||
|
|
||
|
toast('Test Kivy Toast')
|
||
|
|
||
|
def build(self):
|
||
|
return Builder.load_string(KV)
|
||
|
|
||
|
Test().run()
|
||
|
"""
|
||
|
|
||
|
__all__ = ("toast",)
|
||
|
|
||
|
from android.runnable import run_on_ui_thread
|
||
|
from jnius import autoclass, cast
|
||
|
|
||
|
Toast = autoclass("android.widget.Toast")
|
||
|
context = autoclass("org.kivy.android.PythonActivity").mActivity
|
||
|
|
||
|
|
||
|
@run_on_ui_thread
|
||
|
def toast(text, length_long=False):
|
||
|
"""Displays a toast.
|
||
|
|
||
|
:length_long: The amount of time (in seconds) that the toast is visible on the screen.
|
||
|
"""
|
||
|
|
||
|
duration = Toast.LENGTH_LONG if length_long else Toast.LENGTH_SHORT
|
||
|
String = autoclass("java.lang.String")
|
||
|
c = cast("java.lang.CharSequence", String(text))
|
||
|
t = Toast.makeText(context, c, duration)
|
||
|
t.show()
|