我有一个 OnCreateActionMenu
来共享我的值。我正在使用 ShareContentprovider
方法,我通过 intent 传递值。但问题是我想获得值正在 AsynTask
中运行。所以是否可以使用类似 goto 的语句?或任何其他方式?
我的代码是
public boolean onCreateOptionsMenu(Menu menu) {
//getMenuInflater().inflate(R.menu.main, menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.share, menu);
mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();
mShareActionProvider.setShareIntent(getDefaultShareIntent());
return super.onCreateOptionsMenu(menu);
}
private Intent getDefaultShareIntent() {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
// passing the username
intent.putExtra(Intent.EXTRA_SUBJECT,""+name+"via Myapp");
// passing ID
intent.putExtra(Intent.EXTRA_TEXT,t1);
return intent;
}
其中 t1 是 AsynTask
之后生成的 textField
的值
最佳答案
当您引用mShareActionProvider
对象时,您可以随时更改其共享 Intent 。
你可以执行你的ASyncTask
,完成后,你可以使用类似这样的东西再次设置shareIntent
:
public boolean onPostExecute(String newString) {
//newString here is the calculated String in ASyncTask
mShareActionProvider.setShareIntent(getDefaultShareIntent(newString));
}
private Intent getDefaultShareIntent(String newText) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
// passing the username
intent.putExtra(Intent.EXTRA_SUBJECT,""+name+"via Myapp");
// passing ID
intent.putExtra(Intent.EXTRA_TEXT,newText);
return intent;
}
关于android - 带有 OnCreate 操作菜单的异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22399210/