2012-01-31 66 views
0

我使用该组在一个选项卡中显示活动。 A和B活动是同一组。 呼叫乙如下面的代码:加载时显示对话框

Intent intent = new Intent(AActivity.this, BActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
Window w = MyGroup.group.getLocalActivityManager().startActivity("BActivity", intent); 
View view = w.getDecorView(); 
MyGroup.group.setContentView(view); 

而且BActivity是ListActivity。

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
this.setContentView(R.layout.list); 
RL url = new URL(urlstr); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setConnectTimeout(10000); 
connection.setDoInput(true); 
connection.setDoOutput(true); 
connection.setUseCaches(false); 
InputStream is = connection.getInputStream(); 
//extract information from is, and show in list view 
} 

我想显示对话框显示加载。 我已经尝试了AsyncTask和Thread Runnable方法。 但是错误Unable to add window -- token [email protected] is not valid; is your activity running?显示。 如何解决它?

回答

1

您可以在Handler Class的帮助下使用ProgressDialog类。这样你就可以实现你想要做的事情。

progDailog = ProgressDialog.show(loginAct,"Process ", "please wait....",true,true); 

new Thread (new Runnable() 
{ 
    public void run() 
    { 
     // your loading code goes here 
    } 
}).start(); 


    Handler progressHandler = new Handler() 
    { 

     public void handleMessage(Message msg1) 
     { 

      progDailog.dismiss(); 
      } 
    } 
+0

它具有相同的错误。 – brian 2012-01-31 08:58:06

+0

看到我已添加代码 – Lucifer 2012-01-31 09:04:04

2

我假设你在一个TabHost中。因此,添加ProgressDialog时,请勿使用Activities Context this添加它,而应使用getParent()来获取TabHost的上下文:
ProgressDialog pDia = new ProgressDialog(getParent());

+0

但我仍然没有得到答案。 – brian 2012-01-31 08:57:25

+0

使用AsynTask来执行您的下载代码。在onPreExecute中,您必须在上面添加ProgressDialog代码。 – Thommy 2012-01-31 09:19:09