我想在自定义微调器中使用共享按钮
这是我的代码:
btnShareCS_One.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Share
// Share Selected Item In Cell-Phone
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareBody = txtTitleCS_One.getText().toString() + ": " + edtContentCS_One.getText().toString();
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, txtTitleCS_One.getText().toString());
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
// sharingIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(Intent.createChooser(sharingIntent, "Share via"));
}
});
但不行 错误:
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
如何修复它?
我的自定义微调器正常工作,代码正常工作但不在自定义微调器中
我试图使用:
getContext().startActivity(Intent.createChooser(sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), "Share via"));
因此它也不起作用
答案 0 :(得分:2)
使用它
// Share Selected Item In Cell-Phone
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareBody = note.title + ":" + "\n" + note.detail;
// sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, note.title + ":");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
G.currentActivity.startActivity(Intent.createChooser(sharingIntent, "اشتراک با..."));
和 G.currentActivity
G
Global Class是否扩展了应用程序和
currentActivity
是静态变量来自活动
答案 1 :(得分:1)
您只需取消注释该行
即可 sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
您遇到此问题是因为您在没有标记FLAG_ACTIVITY_NEW_TASK的情况下从活动外部调用方法 startActivity()。
答案 2 :(得分:1)
每当你使用来自非Activity类的Intent时,需要添加下面提到的行来表示我们正在调用非活动的Activity
<强> sharingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 强>
由于
答案 3 :(得分:0)
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
String textMessage = "Text Of Message";
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
intent.putExtra(Intent.EXTRA_TEXT, textMessage);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.getApplicationContext().startActivity(intent);