2015-05-26 2 views
6

Ich versuche, die Farbe des Textes (eine Zeichenfolge) zu ändern, wenn ich es in eine E-Mail ausgeben. Mein Code ist:Ändern der Farbe von Text (Zeichenfolge) beim Senden einer E-Mail

String appdata = "%" + txtFromSpinner + location.getText() + "%" + date.getText()+ "%" + start.getText() + "%" + finish.getText() + "%" + lunch.getText() + "%" + details.getText(); 
Intent emailIntent = new Intent(Intent.ACTION_SEND); 
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Timesheet/Parte de horas"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, appdata +sep+ "Please send this email."+sep+ "Your timesheet details are included in it."+sep+ "Thank you."+sep+ "Regards,"+sep+ "Admin Department."+sep+ "Payroll Direct."); 
emailIntent.setType("message/rfc822"); 
startActivity(emailIntent); 

Ich möchte die Zeichenfolge "appdata" in der E-Mail-Box in rot angezeigt werden.

Kann dies getan werden und wie?

Vielen Dank im Voraus.

+0

Sie können die E-Mail-Format, wenn Sie es als HTML senden. Siehe http://stackoverflow.com/questions/2544141/send-html-mail-using-android-intent –

Antwort

3

Es gibt zwei Methoden

Methode 1

SpannableStringBuilder builder = new SpannableStringBuilder(); 
SpannableString redSpannable= new SpannableString(appdata); 
redSpannable.setSpan(new ForegroundColorSpan(Color.RED), 0, appdata.length(), 0); 
builder.append(redSpannable); 

Methode 2

appdata_in_red = Html.fromHtml("<font color=#ff0000>" + appdate + "</font>"); 

Ich habe die einfachste Methode genommen und ich integriert es in Ihren Code wie dies:

String appdata = "%" + txtFromSpinner + location.getText() + "%" + date.getText()+ "%" + start.getText() + "%" + finish.getText() + "%" + lunch.getText() + "%" + details.getText(); 

Intent emailIntent = new Intent(Intent.ACTION_SEND); 
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Timesheet/Parte de horas"); 
//this line below 
emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("<font color=#ff0000>" + appdata + "</font>") +sep+ "Please send this email."+sep+ "Your timesheet details are included in it."+sep+ "Thank you."+sep+ "Regards,"+sep+ "Admin Department."+sep+ "Payroll Direct."); 
emailIntent.setType("message/rfc822"); 
startActivity(emailIntent); 

Ich hoffe meine Antwort wird Ihnen helfen.

+0

Hallo, danke dafür, aber ich kann nicht scheinen, es zur Arbeit zu bringen. Ich benutze Android Studio, wenn das einen Unterschied macht. –

+0

Ich habe versucht, Folgendes hinzuzufügen: emailIntent.setType ("text/html"); und die Textzeile geändert zu lesen: emailIntent.putExtra (Intent.EXTRA_HTML_TEXT, ("" + "BITTE DIESE DATEN IGNORIEREN ==>" + myWifiInfo.getSSID() + appdata + " <==")); –

0

Benutzen Sie den Code wie folgt:

emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("<font color='#FE2B3C'>"+appdata+"</font>"+sep+"Please send this email.")); 
Verwandte Themen