Android 安卓避免后退按钮
我正在将用户从Android 安卓避免后退按钮,android,kotlin,Android,Kotlin,我正在将用户从LoginActivity重定向到login,将片段注册到MainActivity,但按下后退按钮时,我无法阻止MainActivity退回到这些片段 代码 class LoginFragment:Fragment(),View.OnClickListener{ lateinit var navController:navController 覆盖创建视图( 充气器:布局充气器,容器:视图组?, savedInstanceState:捆绑? ):查看{ ... 登录() ....
LoginActivity
重定向到login,将片段注册到MainActivity
,但按下后退按钮时,我无法阻止MainActivity
退回到这些片段
代码
class LoginFragment:Fragment(),View.OnClickListener{
lateinit var navController:navController
覆盖创建视图(
充气器:布局充气器,容器:视图组?,
savedInstanceState:捆绑?
):查看{
...
登录()
....
}
私人娱乐登录(电子邮件:String,密码:String){
val queue=Volley.newRequestQueue(上下文)
val url=“…”
val stringReq:StringRequest=
对象:StringRequest(
方法.POST,url,
Response.Listener{Response->
val intent=intent(上下文,MainActivity::class.java)
星触觉(意图)
完成()
},
Response.ErrorListener{error->
Log.d(“eee”,error.toString())
}
)
}
queue.add(stringReq)
}
覆盖已创建的视图(视图:视图,保存状态:捆绑?){
super.onViewCreated(视图,savedInstanceState)
navController=Navigation.findNavController(视图)
view.findviewbyd(R.id.registerBtn).setOnClickListener(this)
}
覆盖有趣的onClick(v:视图?){
当(v!!.id){
R.id.registerBtn->{
导航(R.id.action\u loginFragment\u到\u registerFragment)
}
}
}
}
注意在我的请求成功返回中,我正在将用户重定向到main活动
,并且我添加了finish()
,但它是红色的!显然,finish()
只在Java上工作,我不确定在kotlin中哪个函数做同样的工作
有什么想法吗?finish()
是一种活动的方法,而不是片段的方法。因此,您将看到红色的finish,因为它对于片段是未解析的
但也可以从片段中调用宿主活动的finsih方法
activity?.finish()
这将完成托管活动。finish()仅在Java上工作
错误,您无法完成片段。@a\u local\u没人知道,谢谢。现在你对我的问题有什么建议?\n你可以使用意图标志,perhaps@a_local_nobody请告诉我你的方式比我的好多少,因为稍后我需要MainActivity
中的后退按钮,因为它是自己的片段(不确定我的方式是最好的)。老实说,我不太确定你想要实现什么。。您是否试图一次只激活一个活动?
activity?.finish()