2015-05-26 22 views
6

Próbuję zmienić kolor tekstu (ciąg znaków), gdy wysyłam go do wiadomości e-mail. Mój kod to:Zmiana koloru tekstu (ciągi znaków) podczas wysyłania wiadomości 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); 

Chciałbym, aby ciąg "appdata" pojawił się na czerwono, gdy był w polu wiadomości e-mail.

Czy można to zrobić i jak?

Z góry dziękuję.

+0

można sformatować maila, jeśli go wysłać jako HTML. Zobacz http://stackoverflow.com/questions/2544141/send-html-mail-using-android-intent –

Odpowiedz

3

Istnieją dwie metody

Metoda 1

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

Metoda 2

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

Brałem najprostszy sposób i zintegrowane go w kodzie jak to:

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); 

Mam nadzieję, że moja odpowiedź pomoże.

+0

Cześć, dziękuję za to, ale nie mogę sprawić, żeby działało. Używam Androida Studio, jeśli to robi różnicę. –

+0

Próbowałem dodać następujące: emailIntent.setType ("text/html"); i zmienił linię tekstu do czytania: emailIntent.putExtra (Intent.EXTRA_HTML_TEXT ("" + "zignoruj ​​te dane ==>" + myWifiInfo.getSSID() + appdata + " <==")); –

0

Użyj kodu, jak pokazano poniżej:

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