我正在尝试使用anko为我的活动添加一个按钮。我知道可以使用RxJava(我已经这样做了)。我想知道如何使用Anko和异步来做到这一点。 代码在同步线程上运行时有效。
class MainActivity : AppCompatActivity() {
fun someMethod(){
async(UI) {
bg {
var button = Button(this@MainActivity)
button.background = this@MainActivity.getDrawable(R.drawable.ic_action_balloon)
myFrame.addView(button)
}
}
}
当我构建代码时,我收到此错误:
错误:(32,17)Val无法重新分配
错误:(32,55)未解析的引用:getDrawable
答案 0 :(得分:1)
API 21中引入了函数activity.getDrawable
。您应该使用activity.resources.getDrawable
代替。
答案 1 :(得分:0)
您只能从UI线程修改视图(bg在其他线程上运行)。
我尝试了您的代码,它可以编译但什么也没做。
此外,如果您不想从协程返回任何内容,请使用launch而不是async。
无论如何,删除bg,它应该可以工作。您不是偶然地打算做这样的事情吗?
launch(UI) {
val someJob = bg {
//Do some work here
someResult
}
doWhateverWithUI(someJob.await())
}