Аргумент это не работает. [требуется: 'android.content.context'

Я использую это:

actionBar.setBackgroundColor(ContextCompat.getColor(this, R.color.action_bar));

Чтобы использовать цвета из color.xml .

Он отлично работает, но в некоторых кодах написано:

Wrong 1st argument type. Found: 'org.telegram.ui.ActionBar.BaseFragment', required: 'android.content.Context'

Но я импортирую android.content.Context:

import android.content.Context;

Я пытался использовать вместо «это»:

actionBar.setBackgroundColor(ContextCompat.getColor(context, R.color.action_bar));

Но чем Android Studio говорит:

Cannot resolve symbol 'context'

person Yannick - theSpy_007    schedule 05.03.2016    source источник
comment
Когда вы находитесь во фрагменте, вы не можете передать this, потому что это фрагмент, а не действие и, следовательно, не подтип Context. Вместо этого используйте getContext().   -  person m02ph3u5    schedule 05.03.2016
comment
Фрагмент не является контекстом   -  person OneCricketeer    schedule 05.03.2016


Ответы (3)


Использовать

getActivity().getApplicationContext()

вместо

this
person user3673952    schedule 05.03.2016
comment
Нет, чем Android-студия говорит: не может разрешить символ: 'getActivity()' - person Yannick - theSpy_007; 05.03.2016

Fragment не является подтипом Context.

Когда внутри фрагмента используйте это:

ContextCompat.getColor(getContext(), R.color.action_bar)

Внутри активности вы можете использовать:

ContextCompat.getColor(this, R.color.action_bar)
person m02ph3u5    schedule 05.03.2016
comment
То же, что и выше. Android Studio говорит: не удается разрешить символ: 'getContext()' - person Yannick - theSpy_007; 05.03.2016
comment
Что такое org.telegram.ui.ActionBar.BaseFragment? Если это подкласс андроидов Fragment, и вы не связывались с getContext() или getActivity(), то тоже должно работать. Также см. stackoverflow.com/questions/8215308/using-context -во-фрагменте - person m02ph3u5; 06.03.2016

Использовать :

actionBar.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), 

R.color.action_bar));
person Vood ouf    schedule 06.11.2016