2017-01-14 6 views
1

に私はアンドロイドのDEVとSTIL新しいので、私はandroid docsParamsという意味は何ですか?アンドロイド

Result doInBackground (Params... params) 

でこのコードつまずく今日Params...の意味は何ですか?それはParamsと同じですか?しかし、Params(without ...)を使用すると、abstractを上書きしないでエラーをスローします。

これは私を混乱させます。

+0

:-)あなたの質問を解決ホープ(http://stackoverflow.com/a/25647882/3682535)すべてのthats良いとはないため、[これを参照してください]。 – rupinderjeet

答えて

5

var argsとして知られているJavaの概念です。メソッドの引数として特定の型の配列を渡すのは糖構文です。だから、

あなたは

Result doInBackground (Integer... args) 
{ 
    Integer [] vals=args; 
} 

を言うと、あなたはその配列から値にアクセスすることができます。

AsyncTaskのメソッドに関する限り、引数の型はParamsから必要な型に変更できます。 Paramsは、実装中に変更する必要のあるテンプレートに過ぎません。

1

これはJavaでvarargsと呼ばれ、構文は異なるが、パラメータの配列です。クリックしてこのことについてドキュメントをご覧ください。here

this質問はあなたに答えています。

1

AsyncTaskは、3つのメソッドを持つクラスです。 DoInBackground()はonPreExecute()の後に呼び出されます。場合によっては、onPreExecuteがある値を返すことがあります。この値は、Paramsフィールドを使用してdoInBackground()によって取得できます。 このパラメータは、Int、Strings、Collection、Contextのいずれかです。

注記:同様に、onPOstExecute(Params params)と同じです。このparamsは、doInBackgroundで返される値です。

戻り値がない場合は、これらのメソッドでparams値を使用する必要はありません。

1

Params...ここではパラメータを指します。 ...は配列を表現する方法です。ここ

Result doInBackground (Params... params)

これはparamsParamsタイプのアレイであることを意味します。デフォルトでは、関数doInBackgroundの値はparams[0]に格納されます。関数が実行中に別の値を受け取ることがあり、それが上位のインデックスに格納されることがあります。

関連する問題