我正在尝试使用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 :(得分: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);