我在Android应用中实施actionShareProvider时遇到一些问题。我这样设置:
XML-File action_share
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_share"
android:title="action_detail_share"
app:showAsAction="always"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"></item>
在主要活动中:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem item = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(getDefaultShareIntent());
}
return true;
}
private Intent getDefaultShareIntent(){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT");
intent.putExtra(Intent.EXTRA_TEXT,dbHandler.databaseToString());
System.out.println(dbHandler.databaseToString());
return intent;
}
如果我启动模拟器,它会正确显示3个垂直排列的点。 但如果我点击它,它只显示“设置项目”。你有什么建议可能有什么不对吗?我还在S4上测试了我的应用程序,并且shareActionprovider甚至没有出现......
编辑:
我的进口是:
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.ShareActionProvider;
编辑2:我也有问题,mShareActionProvider似乎是null ...我试过,在我的proguard-projext.txt中添加-keep class android.support.v7.widget.SearchView { *; }
但它似乎不起作用。
**Question is solved by myself**