2015-09-06 47 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);