我在fragment
中,这是一种反馈形式。当用户单击按钮时,它将从表单中获取数据,并将其传递到电子邮件程序,该程序在用户从startActivity(intent)
之后的列表中选择后将打开。
我的问题是,我不确定是否可以通过某种方式获得反馈,以了解何时完成第三方邮件或启动器是否被取消。
在我的示例中,如果您单击“提交”,然后单击gmail,然后单击“发送gmail”并将其关闭,它会将您带回到应用程序,同时所有数据仍在表单上。
我想将fragments
切换为谢谢fragment
。我做了实验,很高兴如果您在bottom nav bar
中单击其他图标,然后返回到反馈fragment
,则清除了所有数据。
谢谢您,所有帮助将不胜感激。 肖恩·穆里根(Shawn Mulligan)
P.S。没有代码,因为我不认为这是必需的,我只需要知道输入的方向和任何代码片段(如果有的话)即可进行下一步。在fragments
之后更改intent
。
答案 0 :(得分:0)
public void sendFeedbackMessage(String subject, String message) {
Intent messageIntent = new Intent(android.content.Intent.ACTION_SENDTO);
messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
messageIntent.setType("plain/text");
messageIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
messageIntent.setData(Uri.parse("mailto:foo@gmail.com"));
startActivity(messageIntent);
}
答案 1 :(得分:0)
startActivityForResult(messageIntent,1000);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
if (requestCode == 1000){
Toast.makeText(getContext().getApplicationContext(),"You sent mail",Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(getContext().getApplicationContext(),"Mail Not Sent",Toast.LENGTH_SHORT).show();
}
}
因此,我研究了startActivityForResult和onActivityResult并将代码更改为上述代码。但是,除了“邮件未发送”之外,它什么也不做。我确实发现一个人的gmail不支持此功能。我对此完全满意,但是选择器本身不应该返回什么,这样应用程序将知道选择了应用程序还是使用了取消或后退按钮?