• 締切済み

ContextCompat.getColor()

ContextCompat.getColor()についてですが、「メソッドgetColor(Context context, int id)は型ContextCompatで未定義です。」とエラーを吐かれてしまいます。ライブラリはandroid.support.v4.content.ContextCompatをインポートしていて、ターゲットのバージョンはAndroid6.0(API23)です。 なぜこのようなエラーが出るのかが不明なのですが、どなたかエラーを出していそうなものを教えて頂けないでしょうか。

みんなの回答

回答No.2

>「メソッドgetColor(Context context, int id)は型ContextCompatで未定義です。」とエラーを吐かれてしまいます。 これだけでは原因が分かりません、とりあえず下記を参考にしてみて下さい。 import >import android.support.v4.content.ContextCompat; >import android.content.Context; 例.Context変数定義 > Context oBaseContext; > Context oAppContext; > Context oContext; 例.onCreateでContextを設定 > protected void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > >// System 共通の Context:別の Application とやりとりするときなど。 > oBaseContext = getBaseContext( ); >// Application 固有の Context(Application ごとに Context が変化する):Application 共通のモノが対象。 > oAppContext = getApplicationContext( ); >// Activity 固有の Context(Activity ごとに Context が変化する):Activity に依存モノが対象。 > oContext = this; >} 通常、Application 固有の Contextで良いと思います(この場合は「oAppContext」)、稀にプログラマーがActivity毎にリソースの定義を変更したい場合もあるので、その場合はActivity 固有の Contextを使用すれば良いでしょう(この場合は「oContext」)

回答No.1

チャント正しいContextを設定してますか? デフォルト設定済みのカラー以外は『res→values→colors.xml』ファイル内で下記のような定義が必要です(ない場合はファイルを作成してください)。 下記は「orange」、「pink」を定義してます(プログラム内での使用方法は「R.color.orange」(orangeの例)のようになります)。 なお、文字列(16進値)の4バイト指定時の場合は(最上位の)4バイト目が不透明度の指定になるようです。 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="orange">#ffa500</color> <color name="pink">#ffc0cb</color> </resources>