『アンドロイド開発に必要な50のテクニック』読書ノート


『アンドロイド開発に必要な50のテクニック』を見て役に立つテクニックを記録します.
includeラベル使用上の注意事項
レイアウトで指定されたandroid:layout_*をラベルに上書きする場合はプロパティ、ラベルにandroid:layout_を同時に指定する必要がありますwidthとandroid:layout_heightプロパティ、レイアウトを含むlayoutを指定できます.widthとlayout_heightプロパティはいずれも0 dpであり、レイアウトを含むユーザがラベルにlayout_を指定することを目的としている.widthとlayout_Heightプロパティは、ユーザーがこの2つのプロパティを指定しないと、デフォルト値が0になり、見えません.
ViewStubラベル
<ViewStub>
    android:id="@+id/view_stub"
    android:inflateId="@+id/inflateId"
</ViewStub>

View view=findViewById(R.id.view_stub)
view.setVisibility(View.VISIBLE);

埋め込まれたビューの参照を取得する場合、inflate()メソッドは直接参照を返し、findView()メソッドの再呼び出しを回避できます.
カスタムレイアウトカスタムプロパティの取得
finallyでTypeArrayを解放できます

TypeArray a=context.obtainStyledAttribute(attrs,R.styleable.Custom);
try{

}finally{
    a.recycle();
}

SpannableString
Spannable spannable=new SpannableString("");
spannable.setSpan(new BackgroundColorSpan(...));

onCreateでViewの幅と高さを得る
onCreateでgetWidth()とgetHeight()を呼び出すと0が返され、Viewのpostメソッドで幅と高さを取得できます.
パブリッシュ時にログ文を削除
混同ファイルに次の文を混同して削除します.
-assumenosideeffects class android.util.Log {
    public static *** d(...);
}

使用依頼
アダプタの削除などの操作の実現はアダプタでは実現されず、アダプタは操作呼び出しインタフェースに対応する方法を提供し、その実現はActivityで実現される.