1

在用户输入数据中,UI/UX 屏幕有“保存”、“取消”按钮。如果用户输入一些数据,但点击返回键,我需要显示(AlertDialog)他是否要保存数据。怎么办?

我认为这应该通过以下方式完成:@override onDestroy() ?但无法(有点)保持/暂停 onDestroy() 并显示 AlertDialog !

这将类似于“Microsoft Word”所做的事情,但在 Android 中。

4

3 回答 3

1
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if(needsSave){
            .
            .
            .
            return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}
于 2012-05-20T21:02:22.207 回答
0

有一种专门用于此目的的方法,当用户按下设备上的后退按钮时会调用该方法。

 @Override
public void onBackPressed() {
    //super.onBackPressed();
   ..call the dialog builder here..
}

当用户按下正面或负面按钮时,您可以使用 super.onBackPressed() 方法。

于 2020-06-21T08:36:21.107 回答
0

如果你有片段,你可以通过监听器,然后你可以在用户按下后退按钮时收听,你会收到通知。

创建接口。

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
    }
}
于 2020-06-26T08:21:03.717 回答