0

Я хочу, чтобы оператор sharebar в одном из моих действий, и у меня есть Theme.Sherlock.Light.DarkActionBar как baseTheme.ShareActionProvider дает ошибку с Theme.Sherlock.Light.DarkActionBar?

Вот как я вариант создания акций на активность:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    ShareActionProvider provider = new ShareActionProvider(getSupportActionBar().getThemedContext()); 
    provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME); 
    provider.setShareIntent(createShareIntent()); 
    menu.add(Menu.NONE, SHARE_ACTION_ID, 0, 
      getString(R.string.action_share)) 
      .setIcon(R.drawable.icon_share_white) 
      .setActionProvider(provider) 
      .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

    return super.onCreateOptionsMenu(menu); 
} 

private Intent createShareIntent() { 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, url); 
    return shareIntent; 
} 

И это мой baseTheme:

<style name="AppBaseTheme" parent="Theme.Sherlock.Light.DarkActionBar"> 
    <!-- 
     Theme customizations available in newer API levels can go in 
     res/values-vXX/styles.xml, while customizations related to 
     backward-compatibility can go here.  

    --> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <!-- All customizations that are NOT specific to a particular API-level can go here. --> 
    <item name="actionBarItemBackground">@drawable/action_item_background_selector</item> 
    <item name="android:actionBarItemBackground">@drawable/action_item_background_selector</item> 
</style> 

приложение работает просто отлично с Theme.Sherlock, но когда я использую мой AppTheme это дает me this error:

FATAL EXCEPTION: main 
android.content.res.Resources$NotFoundException: Resource ID #0x0 
at android.content.res.Resources.getValue(Resources.java:1026) 
at android.content.res.Resources.getDrawable(Resources.java:671) 
at com.actionbarsherlock.widget.ShareActionProvider.onCreateActionView(ShareActionProvider.java:170) 
at com.actionbarsherlock.internal.view.ActionProviderWrapper.onCreateActionView(ActionProviderWrapper.java:23) 
at android.view.ActionProvider.onCreateActionView(ActionProvider.java:98) 
at com.android.internal.view.menu.MenuItemImpl.getActionView(MenuItemImpl.java:580) 
at com.android.internal.view.menu.ActionMenuPresenter.getItemView(ActionMenuPresenter.java:264) 
at com.android.internal.view.menu.ActionMenuPresenter.flagActionItems(ActionMenuPresenter.java:555) 
at com.android.internal.view.menu.MenuBuilder.flagActionItems(MenuBuilder.java:1048) 
at com.android.internal.view.menu.BaseMenuPresenter.updateMenuView(BaseMenuPresenter.java:91) 
at com.android.internal.view.menu.ActionMenuPresenter.updateMenuView(ActionMenuPresenter.java:297) 
at com.android.internal.view.menu.MenuBuilder.dispatchPresenterUpdate(MenuBuilder.java:244) 
at com.android.internal.view.menu.MenuBuilder.onItemsChanged(MenuBuilder.java:946) 
at com.android.internal.view.menu.MenuBuilder.startDispatchingItemsChanged(MenuBuilder.java:969) 
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:498) 
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:829) 
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:3192) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4921) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
at dalvik.system.NativeStart.main(Native Method) 

Я видел много таких вопросов и их принято но не повезло .. Есть идеи, как это исправить? Заранее спасибо.

Edit: Удаление «actionBarItemBackground» эти атрибуты AppTheme в style.xml также работает, но мне нужно ActionBar иметь собственный фон, а также ... Так что может быть решение для этого?

+0

Что делает третий параметр menu.add()? – rekire

+0

Это «порядок», но не согласуется с проблемой. – yahya

+0

Вы правы, просто еще одна догадка вы используете правильную реализацию ShareActionProvider? Существует также встроенная и совместимая реализация. – rekire

ответ

0

У меня нет 50 репутации, чтобы комментировать, поэтому я отвечу на него здесь.

Эта ошибка:

Resources$NotFoundException: Resource ID #0x0 

говорит вам, что стиль, или parent директива стиля не может быть решена с помощью Android во время выполнения. Проверьте ваш styles.xml файл еще раз.

Если вы используете Eclipse, вы можете проверить правильность директив name, parent и т. Д. Нажатием левой кнопки мыши или Ctrl + щелчок левой кнопкой мыши по каждой из директив. Если щелкнутое значение будет разрешено, Eclipse либо переместится в другую область в пределах styles.xml, либо откроет новый файл таблицы стилей.

UPDATE 1:

@yahya: «я использую AppBase тему ... так что он работает почти каждый вид деятельности, но не только это одно» сообщение коды деятельности, которая не работает. Кроме того, опубликуйте файл AndroidManifest.xml.

+0

Спасибо, но я использую тему AppBase - вы можете видеть на вопросе - как базовую тему, поэтому она работает почти на каждом мероприятии, но не только на этом. И когда я меняю тему этой темы на Theme.Sherlock, она работает отлично ... – yahya

 Смежные вопросы

  • Нет связанных вопросов^_^