Java 对话:为什么?
我想打开一个进度对话框,然后在MainActivity的onCreate方法中放入以下代码Java 对话:为什么?,java,android,Java,Android,我想打开一个进度对话框,然后在MainActivity的onCreate方法中放入以下代码 ProgressDialog.show(MainActivity.this, "", "Loading..."); 但在那之后,我会消失ProgressDialog,然后我把 progressDialog.dismiss(); 但是eclipse告诉我:“不能从类型对话框中静态引用非静态方法disclease()”为什么?这个片段是 if(check.isDeviceConnected())
ProgressDialog.show(MainActivity.this, "", "Loading...");
但在那之后,我会消失ProgressDialog,然后我把
progressDialog.dismiss();
但是eclipse告诉我:“不能从类型对话框中静态引用非静态方法disclease()”为什么?这个片段是
if(check.isDeviceConnected())
{
sincro = new Synk(this);
sincro.start();
ProgressDialog.show(MainActivity.this, "", "Loading");
}
基本上,我希望ProgressDialog在同步后消失,因此我认为ProgressDialog.disease()必须设置为}您需要捕获对ProgressDialog的引用:
ProgressDialog myDialog = ProgressDialog.show(MainActivity.this, "", "Loading...");
然后你可以做:
myDialog.dismiss();
这需要这样做,因为
dislose()
不是静态方法,必须对对象调用它。相反,show(…)
是一个静态方法,因此可以直接调用它。(没有对象。)您需要捕获对ProgressDialog的引用:
ProgressDialog myDialog = ProgressDialog.show(MainActivity.this, "", "Loading...");
然后你可以做:
myDialog.dismiss();
这需要这样做,因为
dislose()
不是静态方法,必须对对象调用它。相反,show(…)
是一个静态方法,因此可以直接调用它。(没有对象。)以这种方式使用ProgressDialog
用于初始化ProgressDialog
ProgressDialog dialog = new ProgressDialog(YourActivity.this);
dialog.setMessage("Loading...");
dialog.setCancelable(false);
dialog.dismiss();
初始化后显示进程对话框
dialog.show();
用于解除ProgressDialog
ProgressDialog dialog = new ProgressDialog(YourActivity.this);
dialog.setMessage("Loading...");
dialog.setCancelable(false);
dialog.dismiss();
以这种方式使用ProgressDialog 用于初始化
ProgressDialog
ProgressDialog dialog = new ProgressDialog(YourActivity.this);
dialog.setMessage("Loading...");
dialog.setCancelable(false);
dialog.dismiss();
初始化后显示进程对话框
dialog.show();
用于解除ProgressDialog
ProgressDialog dialog = new ProgressDialog(YourActivity.this);
dialog.setMessage("Loading...");
dialog.setCancelable(false);
dialog.dismiss();
您应该更改为这样:
if(check.isDeviceConnected())
{
sincro = new Synk(YourActivity.this);
sincro.start();
ProgressDialog mydialog = null;
mydialog = ProgressDialog.show(MainActivity.this, "", "Loading");
}
然后你必须把:
mydialog.dismiss();
您应该更改为这样:
if(check.isDeviceConnected())
{
sincro = new Synk(YourActivity.this);
sincro.start();
ProgressDialog mydialog = null;
mydialog = ProgressDialog.show(MainActivity.this, "", "Loading");
}
然后你必须把:
mydialog.dismiss();
很好,但是如果我想让它像我一样在Synk之后消失,那么您很可能会将
myDialog
设置为一个字段(如果需要),并在任何您想要消除它的地方调用myDialog.dismise()
。这可能意味着您必须在线程内使用View.post()
或Activity.runOnUiThread()
,以便在ui线程上调用disclose。很好,但是如果我想让它在Synk之后像我一样消失,那么您很可能会将myDialog
设置为一个字段(如果需要),并调用myDialog.disclose()
无论您想在哪里取消它。这可能意味着您必须在线程内使用View.post()
或Activity.runOnUiThread()
,以便在ui线程上调用dismise。