在用户输入数据时,UI / UX屏幕上有“保存”,“取消”按钮。如果用户输入一些数据,但是点击后退键,我需要显示(AlertDialog)是否要保存数据。怎么办?
我认为这应该在以下内容上完成:@override onDestroy()?但无法(某种程度)按住/暂停onDestroy()并显示AlertDialog!
这类似于“Microsoft Word”的功能,但在Android中。
答案 0 :(得分:1)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(needsSave){
.
.
.
return true;
}
}
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:0)
有一种专门用于此目的的方法,当用户按下设备上的“后退”按钮时就会调用该方法。
@Override
public void onBackPressed() {
//super.onBackPressed();
..call the dialog builder here..
}
当用户按下时可以使用super.onBackPressed()方法 正面或负面按钮。
答案 2 :(得分:0)
如果您具有Fragment,则可以通过“侦听器”,然后只要用户按下“后退”按钮就可以侦听。
创建界面。
interface IOnBackPressed {
fun onBackPressed(): Boolean
}
在您的活动中。
class MyActivity : AppCompatActivity() {
override fun onBackPressed() {
val fragment =
this.supportFragmentManager.findFragmentById(R.id.main_container)
(fragment as? IOnBackPressed)?.onBackPressed()?.not()?.let {
super.onBackPressed()
}
}
}
在您的片段中。
class YourFragmentName : Fragment(), IOnBackPressed {
override fun onBackPressed(): Boolean {
//Create Your Dialog.
//Dialog.Positive.clicked return true
//Dialog.Negate.clicked return false
}
}