新活动结束时关闭并打开对话框

时间:2018-02-09 13:23:14

标签: android

我有对话活动。然后我去新的活动,在那里我做一些操作并回到主要活动。我想用刷新的数据显示对话框。所以我做了

 @Override
protected void onRestart() {
    super.onRestart();
    dialog.dismiss();
    dialog.show();
}

因为如果我将其关闭并重新打开它,那么数据将会发生变化。如果我在调试器对话框中检查它,但在正常的运行时没有。我该怎么办才能关闭并打开它?

3 个答案:

答案 0 :(得分:0)

尝试更改onPause和onResume。

@Override
protected void onPause() {
super.onPause();
dialog.show();
}

并在onResume

@Override
protected void onResume() {
super.onResume();
dialog.dismiss();
}

请参阅onActivityResult

答案 1 :(得分:0)

解决方案1:调用dialog.dismiss();在onStop()和dialog.show();在你活动的onResume()中。

解决方案2:从您的第二个活动中播放广播并将其收到您的第一个活动。基于它更新数据。

解决方案3:启动activityForResult并在结果接收时,更新对话框。

答案 2 :(得分:0)

您可以转到以下新活动:

Intent intent = new Intent();
startActivityForResult(intent, 0);

然后,要返回传递新数据的主要活动,您可以使用.putExtra

Intent intent = new Intent();

//The object containing the updated data:
intent.putExtra("DATA", dataObject);

getActivity().setResult(200, intent);
getActivity().finish();

在主要活动中,使用onActivityResult检索数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(data != null){
        if(resultCode == 200 && data.hasExtra("DATA")){
            DataClass dataObject = data.getParcelableExtra("DATA");
            //Here you can use the new data to update the content of your dialog...
        }  
    }  
}

希望它有所帮助...