2014-10-06 2 views
1

Я пытаюсь показать сообщение тоста, используя jnius на QPython. Я не могу использовать библиотеку Py4A, так как конечный результат должен работать внутри приложения Kivy, у которого нет библиотеки SL4A.Ошибка при отображении Toast на Android с Python и jnius

from jnius import autoclass 

activity = autoclass("org.renpy.android.PythonActivity").mActivity 
toaster = autoclass("android.widget.Toast") 

toast = toaster.makeText(activity.getApplicationContext(), "I'm a Toast", toaster.LENGTH_SHORT) 
toast.show() 

Однако, я получаю jnius.jnius.JavaException: No methods matching your arguments.

Как правильно использовать уведомление для тоста с помощью jnius?

ответ

0

Почему бы вам просто не создать всплывающее окно в Kivy, упаковать его для Android & посмотреть, работает ли оно, если вы собираетесь использовать Kivy? Вы также можете использовать хороший API Plyer, входящий в Kivy, для отправки уведомлений на Android через Pyjnius: смотрите здесь http://kivy.org/docs/guide/android.html и здесь https://plyer.readthedocs.org/en/latest/

+0

Я собираюсь использовать [DatePickerDialog] (HTTP : //developer.android.com/reference/android/app/DatePickerDialog.html)/[TimePickerDialog] (http://developer.android.com/reference/android/app/TimePickerDialog.html) тоже, и они не " t, поддерживаемый Plyer. Всплывающее окно будет работать, но я думал об использовании уведомлений с тостами, поскольку они соответствуют именно тому, что я хотел. – Cipher

+1

Это github repo, похоже, делает то, что вы хотите: https://github.com/knappador/kivy-toaster – barrios

+0

благодарит за ссылку! Я попытаюсь построить TimePicker таким же образом – Cipher

2

Я знаю, что вопрос старый, но, возможно, это поможет другому. Первой проблемой является то, что вы отправляете строку как параметр, но вам нужно отправить java.lang.CharSequence. Вы можете использовать jnius.cast для этого. Следующий трюк заключается в использовании runOnUIThread, но для быстрого тоста вы можете просто использовать это:

from jnius import autoclass 
PythonActivity = autoclass('org.renpy.android.PythonActivity') 
PythonActivity.toastError("Hello!") 

С наилучшими пожеланиями !,

Себастьян

 Смежные вопросы

  • Нет связанных вопросов^_^