在用户输入数据中,UI/UX 屏幕有“保存”、“取消”按钮。如果用户输入一些数据,但点击返回键,我需要显示(AlertDialog)他是否要保存数据。怎么办?
我认为这应该通过以下方式完成:@override onDestroy() ?但无法(有点)保持/暂停 onDestroy() 并显示 AlertDialog !
这将类似于“Microsoft Word”所做的事情,但在 Android 中。
在用户输入数据中,UI/UX 屏幕有“保存”、“取消”按钮。如果用户输入一些数据,但点击返回键,我需要显示(AlertDialog)他是否要保存数据。怎么办?
我认为这应该通过以下方式完成:@override onDestroy() ?但无法(有点)保持/暂停 onDestroy() 并显示 AlertDialog !
这将类似于“Microsoft Word”所做的事情,但在 Android 中。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(needsSave){
.
.
.
return true;
}
}
return super.onKeyDown(keyCode, event);
}
有一种专门用于此目的的方法,当用户按下设备上的后退按钮时会调用该方法。
@Override
public void onBackPressed() {
//super.onBackPressed();
..call the dialog builder here..
}
当用户按下正面或负面按钮时,您可以使用 super.onBackPressed() 方法。
如果你有片段,你可以通过监听器,然后你可以在用户按下后退按钮时收听,你会收到通知。
创建接口。
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
}
}