1

複数のボタンの非同期ダウンロード タスクの URL を変更する配列を設定するにはどうすればよいですか? これは機能しておらず、修正方法がわかりません。

final String[] dlUrl = new String[]{"www.google.com/document.pdf", "www.google.com/document2.pdf", "www.google.com/document3.pdf"};{ 
for(int k = 0; i < dlUrl.length; i++) { 
    final String dlUrl = downloadFile.execute([k]); 


}

次のコードセクションを変更しようとしています:

private void startDownload() {
    DownloadFile downloadFile = new DownloadFile();
    downloadFile.execute("http://www.google.com/doc.pdf");

}

そして非同期タスク自体:

class DownloadFile extends AsyncTask<String, Integer, String> {

URL url = new URL(aurl[0]);
URLConnection connection = url.openConnection();

ボタンの押下を拾う同様の配列があります。これを追加してみたいと思います...何かアイデアはありますか?

final OnClickListener listener = new OnClickListener() { 
     public void onClick(View v){ 
         switch(v.getId()){  
         case R.id.sec1:  
            break; 
         case R.id.sec2: 
            break; 
         case R.id.sec3: 
            break; 
         } 
     } 
};
final int[] btnIds = new int[]{R.id.sec1, R.id.sec2, R.id.sec3};{ 
for(int i = 0; i < btnIds.length; i++) { 
    final Button btn = (Button) findViewById (btnIds[i]); 
    btn.setOnClickListener(listener); 
}
4

1 に答える 1

2
final String[] dlUrl = new String[]{"www.google.com/document.pdf",
                                    "www.google.com/document2.pdf",
                                    "www.google.com/document3.pdf"};{ 

for(int k = 0; i < dlUrl.length; i++) { 
    final String dlUrl = downloadFile.execute([k]); 


}

おそらくもっと似ているはずです

final String[] dlUrl = new String[]{"www.google.com/document.pdf",
                                    "www.google.com/document2.pdf",
                                    "www.google.com/document3.pdf"}; // { removed

for(int k = 0; k < dlUrl.length; k++) { 
               ^

    final String currentUrl = dlUrl[k];
                              ^^^^^^^^

    downloadFile.execute(currentUrl); 
}

あなた自身のコメントについて:

試行錯誤しながらJavaやandroidを学ぶのは難しい

...そして、私が追加しなければならない非常に悪い考えです。

于 2012-05-04T09:43:21.637 に答える