Android:progressdailog无法正常工作
在我的应用程序中,当我点击图标时,我在fb dailog上实现了一个发布,但加载fbdailog需要时间,我使用progressDailog,代码如下Android:progressdailog无法正常工作,android,progressdialog,Android,Progressdialog,在我的应用程序中,当我点击图标时,我在fb dailog上实现了一个发布,但加载fbdailog需要时间,我使用progressDailog,代码如下 ImageView faceBookIntegration = (ImageView) activity .findViewById(R.id.facebookintegration); faceBookIntegration.setOnTouchListener(new OnTouchListen
ImageView faceBookIntegration = (ImageView) activity
.findViewById(R.id.facebookintegration);
faceBookIntegration.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Constants.isLayoutTouched = true;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
CityAttractions.this.runOnUiThread(new Runnable() {
public void run() {
Dialog dialog = ProgressDialog.show(CityAttractions.this, "","Please wait...", true);
dialog.show();
}
});
Intent menuSettingsIntent = new Intent(CityAttractions.this, ShareOnFacebook.class);
menuSettingsIntent.putExtra("facebookMessage", "Msg");
startActivity(new Intent(menuSettingsIntent).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
break;
}
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}
});
}
当我点击图标时面临两个问题:我获取progressdailog(此处微调器未旋转),然后获取fbdailog,这很好,在取消fbdailog后,我仍然看到progressdailog,fb dailog完成后如何关闭progressdailog
非常感谢您的帮助嘿,您犯了一个大错误。show()将创建ProgressDialog实例并显示该对话框。您正在将同一对话框分配给另一个对话框并再次显示它。所以它显示了双倍的时间 将代码更改为
Dialog dialog = ProgressDialog.show(CityAttractions.this, "","Please wait...", true);
现在,对话框将具有显示的ProgressDialog的引用,任务完成后,您可以退出该对话框。使用startActivityForResult而不是startActivity 试试这个代码
Intent menuSettingsIntent = new Intent(CityAttractions.this, ShareOnFacebook.class);
menuSettingsIntent.putExtra("facebookMessage", "Msg");
startActivityForResult(new Intent(menuSettingsIntent).addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), REQUEST_CODE);
和覆盖onActivityResult
然后在这里关闭对话框。这是否可以帮助您也许,因为您是在action\u down事件中执行此操作的?从fbdialog中传递任何变量,同时返回检查。并驳回dialog@nick..new对此,你能建议我怎么做吗?在关闭fbdailog后,我仍然可以看到progressdailog..是否需要调用dialog.Disclose();???嘿,这就是我在回答中提到的,任务完成后,您需要调用dialog.Disclease()。我应该在哪里调用Disclease(),我的任务将在另一个活动中结束…?您的代码很混乱,我无法知道为什么要显示进度对话框。加载fbdailog(自定义dailog)需要时间因此,同时我想显示progressdailog..它在活动中已经有一个onActivityResult..我可以调用它吗?对此使用不同的请求代码,并在onActivityResultstartActivityForResult中使用该请求代码的结果(新意图(menuSettingsIntent).addFlags(Intent.FLAG\u activity\u REORDER\u TO\u FRONT),1);使用this如果(resultCode==RESULT_OK&&requestCode==1){dialog.disease();}要在子活动中关闭对话框,必须设置结果