我有对话活动。然后我去新的活动,在那里我做一些操作并回到主要活动。我想用刷新的数据显示对话框。所以我做了
@Override
protected void onRestart() {
super.onRestart();
dialog.dismiss();
dialog.show();
}
因为如果我将其关闭并重新打开它,那么数据将会发生变化。如果我在调试器对话框中检查它,但在正常的运行时没有。我该怎么办才能关闭并打开它?
答案 0 :(得分:0)
尝试更改onPause和onResume。
@Override
protected void onPause() {
super.onPause();
dialog.show();
}
并在onResume
@Override
protected void onResume() {
super.onResume();
dialog.dismiss();
}
或强>
答案 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...
}
}
}
希望它有所帮助...