У меня проблемы с этим сообщением об исключительной ситуации во время выполнения, которое я продолжаю получать относительно ShareActionProvider в Android

Вот исключение времени выполнения

java.lang.ClassCastException: android.support.v7.widget.ShareActionProvider не может быть приведен к android.view.View

Я пробовал много разных способов сделать это, но я знаю, что это связано с ShareActionProvider. Я могу добавить ссылки на сайты, где есть несколько способов сделать это, но это не работает, вот весь код

И под "этим" я имею в виду создание экземпляра ShareActionProvider

Пожалуйста, не устанавливайте это как дубликат, это не я смотрел на ТАК, и никто из них не помог... Сод, чтобы сказать

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
    // TODO: Implement this method
    MenuInflater inflator = getMenuInflater();
    inflator.inflate(R.menu.sidebar_menu, menu);
    SubMenu subMenu = menu.addSubMenu("Themes");
    subMenu.add(0 , blue , 0 , "Blue");
    subMenu.add(0, pink , 1, "Pink");
    items = subMenu.getItem().getItemId();

    // tool bar menu
    MenuItem mi = menu.findItem(R.id.searchable);
    mi.setIcon(android.R.drawable.ic_search_category_default);
    SearchView searchView = (SearchView)MenuItemCompat.getActionView(mi);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    sap = (ShareActionProvider) MenuItemCompat.getActionProvider(menu.findItem(R.id.share));
    Intent intentShare = new Intent(Intent.ACTION_SEND);
    intentShare.setType("text/plain");
    intentShare.putExtra(Intent.EXTRA_SUBJECT ,"Subject here");
    intentShare.putExtra(Intent.EXTRA_TEXT , "Here is the share content body");
    startActivity(Intent.createChooser(intentShare,"Share via"));
    sap.setShareIntent(intentShare);
MenuItemCompat.OnActionExpandListener el = new MenuItemCompat.OnActionExpandListener(){
        @Override
   public boolean onMenuItemActionCollapse(MenuItem item) {
        // Do something when action item collapses
        return true; // Return true to collapse action view
    }

    @Override
    public boolean onMenuItemActionExpand(MenuItem item) {
    // Do something when expanded
    return true; // Return true to expand action view
    }};
   MenuItem actionMenuItem = menu.findItem(R.id.searchable);

   // Assign the listener to that action item
   MenuItemCompat.setOnActionExpandListener(actionMenuItem,el);

    return super.onCreateOptionsMenu(menu);
}

Может кто-нибудь помочь, пожалуйста! Я думаю, что я достаточно ясно с этой проблемой у меня есть, если нужно, я могу опубликовать файл menu.XML вместе с appmanifest.XML вместе с другими файлами XML, которые я не вижу смысла поднимать... Спасибо

Вот menu.xml по запросу

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
tools:context=".MainActivity">

<item
    android:id="@+id/searchable"
    android:title="@string/tbmenuitem_search"
    myapp:showAsAction="ifRoom|collapseActionView"
    myapp:actionViewClass="android.support.v7.widget.SearchView" 
/>
<item 
    android:id="@+id/share"
    android:showAsAction="ifRoom"
    android:title="@string/sharetitle"
    myapp:actionViewClass="android.support.v7.widget.ShareActionProvider"
    />
<item
    android:id="@+id/playlist"
    android:title="Play lists"
/>
<item
    android:id="@+id/muteoption"
    android:title="Mute"
/>
<item
    android:id="@+id/unmuteoption"
    android:title="UnMute"
/>
<item 
    android:id="@+id/sharewidget"
    android:title="Share"
/>

[Отредактировано] мой XML-файл actionViewClass должен был быть actionViewProvider, следовательно, ошибка времени выполнения.

0 ответов

Другие вопросы по тегам