0

私はアンドロイドの初心者です。バックグラウンドでいくつかのタスクを実行する必要があるアプリを構築しています。以下はコードのスニペットです。

public class YQL extends AsyncTask <List,Void,List>
{   @Override
    protected List doInBackground(List... Suggestions) {
                //doing some stuff using Suggestions[0]
    }    
}

非同期タスクに渡す必要がある mySuggestions という List クラスのオブジェクトがあります。しかし、非同期タスクは入力として配列のみを受け取るため、以下を試しました。

YQL yqlMain = new YQL();
List[] temp = null;
temp[0] =  mySuggestions
yqlMain.execute(temp);

うまくいきませんでした。エラー :ヌル ポインター アクセス: 変数 temp はヌルにしかできません。助言がありますか?

4

3 に答える 3

0

tempはnullですが、その中で操作を呼び出しています。それはNullPointerException.

次のコードはトリックを行う必要があります(テストされていません)

public class YQL extends AsyncTask <String,Void,List>
{   
    @Override
    protected List doInBackground(String... Suggestions) {

    }    
}

実行:

YQL ygl = new YQL();
ygl.Execute("Suggestion 1", "Suggestion 2")
于 2013-06-25T10:57:25.113 に答える
0

あなたはそれを間違っています..のようなことをしてください

List temp = new ArrayList();
temp.add(mySuggestions);
yqlMain.execute(temp);
于 2013-06-25T10:53:24.487 に答える
0
new DownloadFilesTask().execute(url1, url2, url3);

それで

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
..
..
}

このリンクを確認してください: AsyncTask

于 2013-06-25T11:02:28.327 に答える