小编Arn*_*nde的帖子

ShareActionProvider刷新文本

我有一个EditText,它最初填充了本地数据库中的文本.当用户离开屏幕(onPause)时,更新的文本存储在本地数据库中.我还有一个ShareActionProvider(使用ActionBarSherlock).

当用户使用ShareActionProvider时,旧文本将发送到目标应用程序.当用户按下菜单项时,如何刷新通过actionprovider发送的文本?

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.share_action_provider, menu);
    MenuItem actionItem = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
    mActionProvider = (ShareActionProvider) actionItem.getActionProvider();
    mActionProvider.setShareIntent(createShareIntent());
}

private Intent createShareIntent() {
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT, editText.getText().toString());
    return shareIntent;
}
Run Code Online (Sandbox Code Playgroud)

当用户按下菜单项时,似乎没有调用onOptionsItemSelected().所以我尝试了以下onPause(),没有运气:

@Override
public void onPause() {
    super.onPause();
    mActionProvider.setShareIntent(createShareIntent());
    // save to db:
    getActivity().saveText(editText.getText().toString());
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句:这段代码都在片段中.

android android-fragments actionbarsherlock shareactionprovider

10
推荐指数
1
解决办法
2066
查看次数