使用自定义停止方法扩展SL4A Android对象

时间:2013-06-26 10:04:47

标签: android sl4a

我正在使用SL4A在Android上运行Python。我有一个脚本来计算看起来像这样的平均值:

import android
droid = android.Android()
var1 = 10
var2 = 20
var3 = 30
average = float((var1+var2+var3)/3)
droid.makeToast('Average:'+str(average))
f=open('/data/data/com.example.devicecommunication/files/result.txt','w')
f.write(str(average))
f.close()

我的要求是向名为droid的{​​{1}}添加一个方法,这样我就可以在那里定义自己的逻辑。 这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以在sl4a中使用Python定义类和方法,如下所示:

class MyDroid():
  def stop(self):
    return "I stopped"

这是你要找的吗?

您在SL4A的Wiki页面上有很多示例(教程,API参考,概述):HERE

您可以定义一个全局变量,用于在循环中运行程序,当不再满足条件时,调用stop将您带出循环并结束程序。

类似的东西会起作用:

runScript = True

def stop():
  global runSCript
  runScript = False

while runScript:
  --do actions
  if --condition-- :
    stop()

我不认为这是Python的最佳实践,但它可以工作..

答案 1 :(得分:0)

您可以将任何喜欢的内容绑定到droid对象...

droid.stop = lambda: 1
print(droid.stop()) # prints 1

目前尚不清楚你想做什么。您发布的脚本没有明显用于stop方法。您可以执行以下操作,但我不确定您为什么这样做:

def stop():
    import sys
    sys.exit()

droid.stop = stop

您需要更详细地解释您尝试解决的问题。

相关问题