2011-05-06 179 views
0

我在Android上的C++程序员,新的,我从一个文本文件中使用以下方法下载文本:显示进度条

public static String DownloadText(String URL) 
    { 
     int BUFFER_SIZE = 2000; 
     InputStream in = null; 
     try { 
      in = OpenHttpConnection(URL); 
      } 
     catch (IOException e1) 
     { 
     e1.printStackTrace(); 
     return ""; 
     } 

    InputStreamReader isr = new InputStreamReader(in); 
    int charRead; 
     String str = ""; 
     char[] inputBuffer = new char[BUFFER_SIZE];   
    try { 
     while ((charRead = isr.read(inputBuffer))>0) 
     {      
      //---convert the chars to a String--- 
      String readString = 
       String.copyValueOf(inputBuffer, 0, charRead);      
      str += readString; 
      inputBuffer = new char[BUFFER_SIZE]; 
     } 
     in.close(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
     return ""; 
    }  
    return str;   
} 

但是,如果它需要时间来下载文本它显示了一个空白屏幕,我想显示一个进度条,而不是空白屏幕..我看到很多的进度条的例子,但没有得到任何想法来执行这些在我的情况...请帮助我..

谢谢,

回答

1

使用AsyncTask,并把ProgressDialog在onPreExecute中,在doInBackground中执行下载,然后关闭onPostExecute中的对话框。

0
+0

感谢您的答复jaydeep,我试图实现http://stackoverflow.com/questions/5883537/issue-with-android-layout-和进度/ 5884128#5884128 – jiya 2011-05-06 09:34:45

+0

但得到了Syntex错误下面几行:\t保护对象doInBackground(对象... PARAMS) \t { \t // TODO自动生成方法存根 \t //你的代码 \t}令牌//语法错误“{”,你能不能帮我this..thanks – jiya 2011-05-06 09:40:29

+0

而不是复制它... 写className类扩展的AsyncTask {} 然后 它会提示落实未实现的方法。 你会得到doInBackground()方法 ,请让我知道你是否成功..如果它给错误..然后什么是错误信息? – 2011-05-06 10:03:24

0

U可以在类中声明的进展dialoge。 private ProgressDialog pd; 你可以在你的点击事件中粘贴下面的代码。 pd = ProgressDialog.show(context,“Please wait ...”,“Loading data ...”,true,false); 做完下载部分后写 pd.dismiss();

0

做的过程中线程