[問題] ShareActionProvider向下相容的問題
目前做一個app需要向下相容到至少2.3
所以share的功能決定用ShareActionProvider來做
target sdk version是設android 4.0(API14)
引用了 android-support-v7-appcompat
和android-support-v4
在referenced libraries
import android.support.v7.widget.ShareActionProvider;
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
MenuItem shareItem = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider)
MenuItemCompat.getActionProvider(shareItem);
mShareActionProvider.setShareIntent(getDefaultIntent());
return super.onCreateOptionsMenu(menu);
}
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto"
>
<item android:id="@+id/save_wotkout_ab"
android:title="Add Item"
android:icon="@android:drawable/ic_menu_save"
/>
<item
android:id="@+id/action_share"
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"
yourapp:showAsAction="ifRoom"
android:title="share"/>
</menu>
這樣無法build 會一直出現錯誤訊息:
No resource identifier found for attribute 'actionProviderClass'
No resource identifier found for attribute 'showAsAction'
如果把yourapp改成android就可以build
但執行時會出現ClassCastException
android.support.v7.widget.ShareActionProvider cannot be cast to
android.view.ActionProvider
不知道有沒有人有類似的經驗?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.242.250.151
推
11/13 00:31, , 1F
11/13 00:31, 1F