2014-10-06 81 views
1

我試圖在QPython上使用jnius顯示Toast消息。我無法使用Py4A庫,因爲最終結果應該在沒有SL4A庫的Kivy應用程序中運行。在使用Python和jnius在Android上顯示Toast時出現錯誤

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呢?您也可以使用Kivy中包含的漂亮的Plyer API通過Pyjnius在Android上發送通知:看這裏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),而且它們不是'現在由Plyer支持。彈出窗口可以工作,但我想用烤麪包通知,因爲它們完全符合我想要的。 – Cipher 2014-10-06 08:46:38

+1

這github回購似乎做你想要的:https://github.com/knappador/kivy-toaster – barrios 2014-10-06 16:52:25

+0

感謝您的鏈接!我將嘗試以相同的方式構建TimePicker – Cipher 2014-10-09 12:13:49

2

我知道問題是舊的,但也許這有助於其他。 第一個問題是因爲你發送一個字符串作爲參數,但你需要發送java.lang.CharSequence。你可以使用jnius.cast來做那件事。 接下來的訣竅是使用runOnUIThread,但對於一個快速敬酒,你可以簡單地使用:

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

最好的問候!

塞巴斯蒂安

相關問題