我正在尝试使用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函数中
出现错误Expecting member declaration是因为您在类中编写了一条语句(函数调用)。在此范围内,需要声明(函数,内部类)。
Expecting member declaration
您必须将语句放置在函数中(然后从某个位置调用这些语句)才能执行它们。