0

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.

Antwort

0

Hoffnung unter Willen arbeitet für Sie: -

Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
    intent.putExtra(intent.EXTRA_SUBJECT, "Primus Suggestion or Issue"); 
    intent.setType("text/plain"); 
    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(); 
    } 
+0

Es funktioniert, und wir danken Ihnen für das, aber wissen Sie, warum hat nicht funktioniert meiner ursprünglichen Code? –

+0

Ü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. –

Verwandte Themen