我正在尝试点击手机上的ShareActionProvider按钮,但它完全没有响应。没有任何共享应用程序,如短信或电子邮件弹出。我在我的xml文件中将ShareActionProvider标记为menu_share,并使用onOptionsItemSelected方法来响应任何点击。
爪哇
import android.support.v7.widget.ShareActionProvider;
public class MainActivityFragment extends Fragment{
ArrayAdapter<String> mForecastAdapter;
//String[] parsedWeatherData;
ShareActionProvider provider;
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.forecastfragment, menu);
MenuItem item = menu.findItem(R.id.menu_share);
provider = (ShareActionProvider)
MenuItemCompat.getActionProvider(item);
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_share:
Log.d("Weather", "Is menu share clicked");
doShare();
break;
default:
break;
}
return true;
}
public void doShare() {
String message = oneDayWeather;
// populate the share intent with data
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, message);
provider.setShareIntent(intent);
}
XML
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:bwq="http://schemas.android.com/apk/res-auto"
>
<item
android:id="@+id/menu_share"
android:title="@string/menu_share"
bwq:actionProviderClass="android.support.v7.widget.ShareActionProvider"
bwq:showAsAction="always"/>
</menu>
有什么想法吗?
答案 0 :(得分:0)
没关系,我解决了。只有在获取提供程序后立即设置setShareIntent方法时,此版本的ShareActionProvider才有效。例如:
MenuItem item = menu.findItem(R.id.menu_share);
provider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
provider.setShareIntent(getDefaultShareIntent());