Also mache ich diese App, und es enthält mehrere Fragmente, die mit einer Hauptaktivität über eine Navigationsleiste verknüpft sind. Eines der XML-Layouts der Fragmente enthält eine Schaltfläche, die beim Anklicken eine E-Mail sendet. Ich teste das auf dem Emulator. Es hat an einer anderen App gearbeitet, aber das nicht. Hier ist der Code:ACTION_SENDTO Absicht funktioniert nicht im Navigations-Schubladenfragment
public class AboutPage extends Fragment {
public AboutPage() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_about_page, container, false);
Button contactButton = (Button) view.findViewById(R.id.contact_button);
contactButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:[email protected]"));
intent.putExtra(intent.EXTRA_SUBJECT, "Primus Suggestion or Issue");
intent.setType("plain/text");
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
getActivity().startActivity(Intent.createChooser(intent, "Send Email using:"));
} else {
Toast.makeText(getActivity(), "You don't have any email apps to contact us.", Toast.LENGTH_SHORT).show();
}
}
});
return view;
}
}
Es hält auf den Toast Anzeigen, aber es funktioniert auf der anderen app, wo es die Absicht, in der Haupttätigkeit erstellt wird.
Es funktioniert, und wir danken Ihnen für das, aber wissen Sie, warum hat nicht funktioniert meiner ursprünglichen Code? –
Überprüfen Sie den Unterschied zwischen 'ACTION_SEND' und' ACTIN_SENDTO' von diesem [link] (https://developer.android.com/reference/android/content/Intent.html#ACTION_SENDTO) "intent.resolveActivity (getActivity(). getPackageManager())! = null "ist immer null für ACTION_SENDTO, so dass der Code nicht funktioniert. –