2011-12-06 9 views
2

AndroidのSDKからProgressBar.javaソースコードを確認しています。 android.widget.ProgressBarのライン191上では述べている:なぜそれは同時にでパラメータリストにmMinHeightを使用しているProgressBar.javaのAndroidソースコードは意味がありません

mMinHeight = a.getDimensionPixelSize(R.styleable.ProgressBar_minHeight, mMinHeight)); 

それを初期化していると?誰かがこれに光を当てることができますか?完全なソースコードはgrepcodeにあります。

答えて

4

initProgressBarと表示されている行171を参照してください。このメソッドはmMinHeightを24の値に初期化します。次にgetDimensionPixelSizeを呼び出すと、その値がデフォルト値として使用されます。

+0

ああ、私はそれを逃した。時々、そのソースコード全体を精査するのは難しいし、しばらくするとスパゲッティとして現れます。 –

1

getDimensionPixelSizeが要求された値を見つけることができない場合、2番目のパラメータは単に返されるデフォルト値です。デフォルト値として設定しようとしている変数を渡すのが普通です(ちょっと変わった場合)。効果的には、このコードでは「この値を設定している場合はこの値を設定し、そうでない場合はそのまま変数をそのまま残してください」と言います。

+0

興味深いので、これはJavaScriptのコールバックスタイルのようなものですか? –

+0

これはjavascriptコールバックのようなものではありません。コールバックは、基本的に関数(またはそのアドレス)をパラメータとして渡すだけです。ここでのAndroidメソッドは、ユーザーが渡したデフォルト値(必要に応じてコールバックを含む任意の型として定義できます)を返し、返される実際の値が見つからない場合はこのデフォルト値を返します。 – MusiGenesis

関連する問題