0

I'm trying to change my toolbar/actionbar icon color Using this class.

I'm using fragment.

My code:

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

The error:

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)
Arnaldo
  • 673
  • 6
  • 22
  • You need to pass a color resource like `R.color.somecolor` in your getColor, not an attribute – freddieptf Sep 06 '15 at 19:58
  • Got it, thanks. I need to use the default theme color. There is a right way to do it? Or I do not know if it is correct, but it would be possible to somehow convert to a color? ): (sorry for my english) – Arnaldo Sep 06 '15 at 20:08

1 Answers1

0

Problem solved! I do not know why I ignored this answer I must admit , I went into despair for a moment because I have not found an answer and decided to ask here .

Now I have:

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);
Community
  • 1
  • 1
Arnaldo
  • 673
  • 6
  • 22