2017-10-10 3 views
0

S'il vous plaît suis très nouveau à java, j'essaie de mettre mon site Web dans le webview, j'ai quelques lignes de code qui envoient l'utilisateur au formulaire d'email et fonctionne très bien. Mais maintenant je dois utiliser le même code à plus de 3 endroits quand url correspond à quelque chose et je sais qu'il y aura un moyen de mettre ce code un endroit comme une fonction, puis l'appeler et le temps que je veux l'utiliser. Est-ce que quelqu'un peut m'aider, s'il vous plaît.Comment faire une fonction java réutilisable pour android webview

function RequestMailForm(newbody, newsubject, newemailto, newmailbbc){ 
    /* That email code*/ 
    } 
    mva.setWebViewClient(new WebViewClient() { 
    if (url.startsWith("mailto:")) { 
     url = url.substring(7); 
     String body = "Body of message."; 
     Intent mail = new Intent(Intent.ACTION_SEND); 
     mail.setType("application/octet-stream"); 
     mail.putExtra(Intent.EXTRA_EMAIL, new String[] { url }); 
     mail.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
     mail.putExtra(Intent.EXTRA_TEXT, body); 
     startActivity(mail); 
     return true; 
    } 
    if (url.startsWith("http://example.com/help") || url.startsWith("https://example.com/contact")){ 
     RequestMailForm(newbody, newsubject, newemailto, newmailbbc); 
    } 
}); 
+0

Ce qui vous empêche de mettre votre code (qui est censé être re -utilisé) dans une classe? –

+0

@ B001 s'il vous plaît montrez-moi comment parce que je ne sais pas comment faire cela, j'ai créé une nouvelle classe Java pour cela, mais comment puis-je coder pour passer le nouveau courriel et le corps du message que je veux – Peter

+0

_wast de ressource ...? Parlez-vous des octets? –

Répondre

1

Créez une classe et mettez la méthode sendEmail avec un paramètre de message et d'e-mail. Voir le code ci-dessous.

class SendEmail { 
    Context context; 

    public SendEmail(Context context){ 
     this.context = contex; 
    } 

    //send an email 
    public void send(String email) { 
     Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
     "mailto", email, null)); 
     intent.setType("message/rfc822"); 
     intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
     intent.putExtra(Intent.EXTRA_TEXT, "Body of message"); 
     context.startActivity(Intent.createChooser(emailIntent, "Send email...")); 
    } 
} 

Ensuite, créez un objet de la classe SendEmail et appeler cette fonction chaque fois que vous voulez envoyer un e-mail comme ceci:

if (url.startsWith("mailto:")) { 
    url = url.substring(7); 
    sendEmail.send(url); 
    return true; 
}