小编典典

使用Kotlin从另一个人完成android活动

java

我正在尝试使用Kotlin完成另一个(android)的活动。我知道用Java执行此操作的原因是以下代码

在第一个活动中:

BroadcastReceiver broadcast_reciever = new BroadcastReceiver() {

    @Override
    public void onReceive(Context arg0, Intent intent) {
        String action = intent.getAction();
        if (action.equals("finish_activity")) {
            finish();
            // DO WHATEVER YOU WANT.
        }
    }
};
registerReceiver(broadcast_reciever, new IntentFilter("finish_activity"));

关于其他活动:

Intent intent = new Intent("finish_activity");
sendBroadcast(intent);

由于某种原因,将java活动转换为kotlin不会给出有效的输出,如果有人可以给我正确的语法来正确地使用 kotlin进行处理, 我将不胜感激

kotlin输出(第一个活动) [确定]

val broadcast_reciever = object : BroadcastReceiver() {

    override fun onReceive(arg0: Context, intent: Intent) {
        val action = intent.action
        if (action == "finish_activity") {
            finish()
            // DO WHATEVER YOU WANT.
        }
    }
}
registerReceiver(broadcast_reciever, IntentFilter("finish_activity"))

kotlin输出(第二活动) [确定]

            val intent = Intent("finish_activity")
            sendBroadcast(intent)

错误:http//i.imgur.com/qaQ2YHv.png

FIX:该代码显示是正确的,您只需要将其放置在onCreate函数中


阅读 297

收藏
2020-11-26

共1个答案

小编典典

出现错误Expecting member declaration是因为您在类中编写了一条语句(函数调用)。在此范围内,需要声明(函数,内部类)。

您必须将语句放置在函数中(然后从某个位置调用这些语句)才能执行它们。

2020-11-26