2015-09-06 3 views
0

Я пытаюсь изменить цвет значка панели инструментов/значка панели действий с помощью this class.Невозможно отобразить значок панели инструментов

Я использую фрагмент.

Мой код:

MenuColorizer.colorMenu(getActivity(), menu, ContextCompat.getColor(getContext(), android.R.attr.textColorPrimary)); 

Ошибка:

android.content.res.Resources$NotFoundException: Resource ID #0x1010036 
      at android.content.res.Resources.getValue(Resources.java:2354) 
      at android.content.res.Resources.getColor(Resources.java:2036) 
      at android.support.v4.content.ContextCompat.getColor(ContextCompat.java:368) 
      at com.mysite.app.MyFragment.onCreateOptionsMenu(MyFragment.java:49) 
      at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:2044) 
      at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:2063) 
      at android.support.v4.app.FragmentController.dispatchCreateOptionsMenu(FragmentController.java:270) 
      at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:263) 
      at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:85) 
      at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:267) 
      at android.support.v7.internal.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:85) 
      at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:448) 
      at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:65) 
      at android.os.Handler.handleCallback(Handler.java:733) 
      at android.os.Handler.dispatchMessage(Handler.java:95) 
      at android.os.Looper.loop(Looper.java:146) 
      at android.app.ActivityThread.main(ActivityThread.java:5593) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
      at dalvik.system.NativeStart.main(Native Method) 
+0

Вам необходимо пройти цветовой ресурс, как 'R.color.somecolor' в вашем GetColor, а не атрибут – freddieptf

+0

Понял, спасибо. Мне нужно использовать цвет темы по умолчанию. Есть правильный способ сделать это? Или я не знаю, правильно ли это, но можно ли каким-то образом преобразовать в цвет?): (Извините за мой английский) – user5195185

ответ

0

Проблема решена! Не знаю, почему я проигнорировал this answer Должен признаться, на какое-то мгновение я впал в отчаяние, потому что не нашел ответа и решил спросить здесь.

Теперь у меня есть:

int[] attribute = new int[] { android.R.attr.textColorPrimary }; 
TypedArray array = getContext().getTheme().obtainStyledAttributes(attribute); 
int color = array.getColor(0, Color.TRANSPARENT); 
array.recycle(); 

MenuColorizer.colorMenu(getActivity(), menu, color); 
Смежные вопросы