ShareActionProvider を使用して動的テキストを共有したい。私はフラグメントでこのコードを使用しています:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.detailfragment, menu);
MenuItem menuItem = menu.findItem(R.id.action_share);
private ShareActionProvider mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);
if (mForecast != null) {
mShareActionProvider.setShareIntent(createShareForecastIntent());
}
}
private Intent createShareForecastIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, editText.getText().toString());
return shareIntent;
}
これにより、共有ボタンを押す前に EditText で変更しても、アクティビティに入る前のテキストが共有されます。そして、このコードは私が望むように機能しますが、共有するための別のボタンを作成したくありません:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_SEND);
myIntent.putExtra(Intent.EXTRA_TEXT, editText.getText().toString());
myIntent.setType("text/plain");
startActivity(myIntent);
break;
default:
//
}
}
私は使用しています:
minSdkVersion 14
targetSdkVersion 19