0

これは私のAsycTaskです

class LoadAsync extends
        AsyncTask<ArrayList<String>, Void, ArrayList<Float>> {
    private ProgressDialog mPd;

    @Override
    protected void onPreExecute() {
                     //do something
    }

    @Override
    protected ArrayList<Float> doInBackground(ArrayList<String>... params) {
                     //do something
    }

    @Override
    protected ArrayList<Float> doInBackground(ArrayList<String>... params) {
        return result;
    }

    @Override
    protected void onPostExecute(ArrayList<Float> scAnalysis) {
                     //do something
    }
}

そして、Asynctaskを実行する私のアクティビティ

ArrayList<String> arrInput = new ArrayList<String>();
    arrInput.add("var1");
    arrInput.add("var2");
    arrInput.add("var3");
    new LoadAsync().execute(arrInput);  //here display warning 

警告の内容: タイプ セーフ: ArrayList のジェネリック配列が varargs パラメータに対して作成されます asynctask execute

この警告を削除したい..どうすればいいですか

4

1 に答える 1

3

変化する

ArrayList<String> arrInput = new ArrayList<String>();
    arrInput.add("var1");
    arrInput.add("var2");
    arrInput.add("var3");
    new LoadAnalysis().execute(arrInput);

new LoadAnalysis().execute("var1", "var2", "var3");

そして警告は消えます。

もちろん、あなたも変わらなければなりません

 AsyncTask<ArrayList<String>

 AsyncTask<String

"var1", "var2", "var3",また、 params を配列としてアクセスできます。

params[0] is "var1"

等々。可変引数のドキュメントをご覧ください

于 2013-08-28T08:42:42.033 に答える