ContextCompactクラスをいつアプリケーションで使用するかを知りたい。基本的にその使用法は何ですか?またいつ使用するのですか?私は開発者のサイトを読んでいる、それはContextCompactは "コンテキストの機能にアクセスするためのヘルパー"と言います。しかし、この行は何を意味していますか?ContextCompactクラスを使用する場合
答えて
ContextCompatクラスは、テーマを気にすることなくdrawableやcolorなどのリソースを取得する場合に使用します。リソースにアクセスするための統一されたインターフェイスを提供し、下位互換性を提供します。
一般的なユースケースは...など例えば
を色や描画可能な取得することができContextCompat.getDrawable(文脈、R.drawable.someimage)); ContextCompat.getDrawable(context、R.color.blue));
GETCOLOR
のソースコード /** * Returns a color associated with a particular resource ID * <p> * Starting in {@link android.os.Build.VERSION_CODES#M}, the returned * color will be styled for the specified Context's theme. * * @param id The desired resource identifier, as generated by the aapt * tool. This integer encodes the package, type, and resource * entry. The value 0 is an invalid identifier. * @return A single color value in the form 0xAARRGGBB. * @throws android.content.res.Resources.NotFoundException if the given ID * does not exist. */ @ColorInt public static final int getColor(Context context, @ColorRes int id) { final int version = Build.VERSION.SDK_INT; if (version >= 23) { return ContextCompatApi23.getColor(context, id); } else { return context.getResources().getColor(id); } }
この方法を見てみましょうAPIレベルの解像度を気にして、自動的に状態やテーマを解決かかります。 23より上では、色の状態にアクセスすることができますが、これは内部的に解決されています。代わりに、各リソースについて確認する必要があります。
ContextCompat
は、いくつかの作業を基本コンテキストに置き換えるためのクラスです。あなたは
getContext().getColor(R.color.black);
のようなものの前に使用している場合
は、例えば、今、そのは、Android 6.0(API 22+)以来を非推奨ますので、使用する必要があります。
getContext().getColor(R.color.black,theme);
やテーマを埋めるContextCompat
を使用します自動的にあなたのContext
のテーマに依存します:
ContextCompat.getColor(getContext(),R.color.black)
getDrawable
と
同じこともContextCompat
は、そのような権限を確認するか、
を積層する複数のアクティビティを追加するなどのAPIの機能のための他の方法を22+含まれている基本的に公式開発者のサイトによると、それは中の機能にアクセスするためのヘルパーです後方互換性のあるAPIレベル4の後にコンテキストが導入されました。
詳細については、このリンクを参照してください。 https://developer.android.com/reference/android/support/v4/content/ContextCompat.html
基本的にgetBackgroundResourceまたはgetColorメソッドは廃止されており、ContextCompactを使用することはその代替方法です。私はこれが役立つことを願っています
- 1. Unity3d Single_Instanceクラスを使用する場合
- 2. 使用可能な場合は特別クラスを使用します。基底クラスがない場合は
- 3. KeyValuePair <>をプロパティとして使用する場合と別クラスを使用する場合
- 4. CountDownTimerクラスを使用している場合、カウントアップアニメーションをカウントする
- 5. リポジトリパターンを使用する場合の従来のクラス
- 6. BlackberryのManagerクラスにsubpaint()とsuper.paint()メソッドを使用する場合
- 7. 継承を使用する場合のPuppetクラスのオーバーライド
- 8. ProtobufクラスとJavaのマッピングフレームワーク/レイヤーを使用する場合
- 9. 抽象クラスまたはインターフェイスを使用する場合
- 10. $ thisを使用する場合とシンプルな変数を使用する場合
- 11. クラスで "self"を使用している場合のNameError?
- 12. Railty - 使用する場合
- 13. クラスのメソッドで使用される場合、クラスのプロパティは未定義です
- 14. NSClassFromString()は、クラスを使用できない場合でもクラスを返します。
- 15. クラスを型パラメータとして使用する場合、別の型パラメータを含む場合もあります。
- 16. 目的Cコンベンション:使用する場合と使用する場合
- 17. PHPがクラスを使用する場合にのみファイルをロード/インクルードする
- 18. ヌルチェックが別のメソッド/クラスにある場合の@NonNullの使用
- 19. Python 2.7で__init__を使用しない場合と使用する場合
- 20. ハスケルでハムズを使用する場合Yesodなしの場合
- 21. onclickの場合、 `onclick =" confirmOnSubmit() `vs` onclick = "confirmOnSubmit`を使用する場合
- 22. Javaの場合getterを使用する場合
- 23. SQL Serverクエリの場合完全クエリを使用する場合
- 24. C++ - クラス内でポインターメンバーを使用する必要がある場合
- 25. Google Apps Script:getActiveSpreadsheet()を使用する場合
- 26. イベントストアを使用する場合
- 27. AppDomain.CurrentDomain.AssemblyResolveを使用する場合のメモリリーク
- 28. MappedByteBufferを使用する場合のIndexOutOfBoundsException
- 29. QNetworkAccessManagerとQTcpServerを使用する場合
- 30. データベースにTLSを使用する場合
http://stackoverflow.com/questions/38229842/whats-the-difference-between-activitycompat-and-contextcompat –