Итак, у меня есть метод переопределения для одного из моих действий (AppCompatActivity), и он взят из моего старого проекта, который был разработан в Eclipse Luna.
Я получаю исключение всякий раз, когда я звоню:
_shareActionProvider = (ShareActionProvider) item.getActionProvider();
Информация об исключении:
2018-10-25 15:39:22.332 20677-20677/com.eibimalul.smartgallery E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.eibimalul.smartgallery, PID: 20677
java.lang.UnsupportedOperationException: This is not supported, use MenuItemCompat.getActionProvider()
at android.support.v7.view.menu.MenuItemImpl.getActionProvider(MenuItemImpl.java:782)
at com.eibimalul.smartgallery.SingleImageDisplayActivity.onCreateOptionsMenu(SingleImageDisplayActivity.java:309)
at android.app.Activity.onCreatePanelMenu(Activity.java:3465)
Вот мой метод:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options_menu, menu);
MenuItem item = menu.findItem(R.id.action_share);
_shareActionProvider = (ShareActionProvider) item.getActionProvider();
Intent shareIntent = createShareIntent();
_shareActionProvider.setShareIntent(shareIntent);
return true;
}
Редактировать:
Просто чтобы уточнить:
Где-то еще в моем коде мне нужно использовать:
_sharedActionProvider.setShareIntent(intent);
Поэтому, если я хочу использовать то, что @sasikumar предлагает ниже, это означает, что мне нужно изменить тип поставщика и новыйТип не имеет метода setShareIntent.