QUI*_*PPY 3 java android kotlin
我正在尝试使用 kotlin 完成另一个(android)的活动。我知道用java来做这件事的方法是使用以下代码(/sf/answers/726549281/)
在第一个活动中:
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"));
Run Code Online (Sandbox Code Playgroud)
关于其他活动:
Intent intent = new Intent("finish_activity");
sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
由于某种原因,将 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"))
Run Code Online (Sandbox Code Playgroud)
kotlin 输出(第二个活动)[确定]
val intent = Intent("finish_activity")
sendBroadcast(intent)
Run Code Online (Sandbox Code Playgroud)
错误: https: //i.stack.imgur.com/OJvSY.png
修复:显示的代码是正确的,您只需将其放置在 onCreate 函数中
小智 5
用于完成另一个特定活动的简单代码:
class SplashActivity : AppCompatActivity(), NavigationListner {
class MyClass{
companion object{
var activity: Activity? = null
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
MyClass.activity = this@SplashActivity
}
override fun navigateFromScreen() {
val intent = Intent(this,LoginActivity::class.java)
startActivity(intent)
}
}
Run Code Online (Sandbox Code Playgroud)
现在SplashActivity.MyClass.activity?.finish()从另一个活动调用来完成上述活动。
| 归档时间: |
|
| 查看次数: |
14300 次 |
| 最近记录: |