几近崩溃的一个问题。竟然不能转ShareActionProvider

dongcx1234567 2014-03-25 10:48:42
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
MenuItem shareItem = menu.findItem(R.id.action_settings);
ShareActionProvider mShareActionProvider = (ShareActionProvider)MenuItemCompat.getActionProvider(shareItem);
return true;
}

加粗的这段话老是给我无法把ActionProvider转换为ShareActionProvider,试了很多遍。。始终不知道为什么
...全文
104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongcx1234567 2014-03-30
  • 打赏
  • 举报
回复
引用 1 楼 ultrapro 的回复:
确保你用到的类是在同一个包里的,例如MenuItemCompat 是 v4的兼容包里的 而 ActionProvider , 在标准的sdk下有,v4下面也有,所以MenuItemCompat.getActionProvider 返回的应该是v4下面的那个类的对象。 而ShareActionProvider 这个在标准sdk下有,v7下面也有。你看看你import的是哪个包下的。
我想请问一下。经常我需要引入包的时候,都有有两个,一个是v4的,另外一个就是正常的。这个有什么区别吗
tcmakebest 2014-03-26
  • 打赏
  • 举报
回复
说是类型转换,其实都是骗骗编译器的,如果本身不是那种类型,那转换肯定是失败的。举例如下: 食物 a = 米饭 米饭 b =(米饭)a 米饭 c = a (X错误)
儿大不由爷 2014-03-26
  • 打赏
  • 举报
回复
确保你用到的类是在同一个包里的,例如MenuItemCompat 是 v4的兼容包里的 而 ActionProvider , 在标准的sdk下有,v4下面也有,所以MenuItemCompat.getActionProvider 返回的应该是v4下面的那个类的对象。 而ShareActionProvider 这个在标准sdk下有,v7下面也有。你看看你import的是哪个包下的。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧