*メールを読むことができるアプリケーションに取り組んでいます。textview / edittext を使用してメールを表示しています。現在、メールの内容を文字列として取得して表示できます。しかし、HTML コンテンツと画像を含むメールを表示するのに最適なビューはどれですか?? 私を助けてください。ありがとう:)編集済み:SOの友人が提案したようにwebviewを使用しました(@Andro Selva、@CFlexに感謝)。しかし、問題に直面しています。メールの本文が 2 回表示されます。:( 1回はテキスト/プレーンとして、もう1回はテキスト/htmlとして。
次のコードを試してwebviewをロードしようとしました。
webViewBody.loadData(details[3], "text/html", "UTF-8");
//webViewBody.loadDataWithBaseURL(null, details[3] , "text/html", "utf-8", null);
ここで details[3] は電子メールの内容です。私はここで何が欠けています!? :( 私を助けてください。
編集済み: 以下の電子メール コンテンツを表示するためのメッセージ コンテンツを取得するために使用したコードを追加しました。
public void getContent(Message msg)
{
try
{
Object o = msg.getContent();
if (o instanceof String)
{
if(((String) o).equalsIgnoreCase(""))
{
}
else
{
messageBody = (String)o+"STRING!!";
}
}
else if (o instanceof Multipart)
{
Multipart mp = (Multipart)o;
int count3 = mp.getCount();
for (int j = 0; j < count3-1; j++)
{
// Part are numbered starting at 0
BodyPart b = mp.getBodyPart(j);
Object o2 = b.getContent();
if (o2 instanceof String)
{
if(((String) o).equalsIgnoreCase(""))
{
}
else
{
messageBody = (String)o2+"MULTIPART!!";
}
}
} //End of for
}
else if (o instanceof InputStream)
{
//System.out.println("**This is an InputStream message**");
InputStream is = (InputStream)o;
// Assumes character content (not binary images)
//messageBody = convertStreamToString(is)+"INPUT STREAM!!";
int c;
while ((c = is.read()) != -1)
{
messageBody = convertToString(is)+"INPUT STREAM!!";
System.out.println(messageBody);
}
}
}
catch (Exception ex)
{
System.out.println("Exception arise at get Content");
ex.printStackTrace();
}
//TODO TEST CODES
try
{
String contentType = msg.getContentType();
// System.out.println("Content Type : " + contentType);
Multipart mp = (Multipart) msg.getContent();
int count = mp.getCount();
for (int i = 0; i < count; i++)
{
dumpPart(mp.getBodyPart(i));
}
}
catch (Exception ex)
{
System.out.println("Exception arise at get Content");
ex.printStackTrace();
}
}
public String convertToString(InputStream inputStream)
{
StringBuffer string = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
try
{
while ((line = reader.readLine()) != null)
{
string.append(line + "\n");
}
}
catch (IOException e)
{
}
return string.toString();
}
コントロールは常に「else if (o instanceof InputStream)」状態になります。そのため、常に電子メールをストリーミングし、完全な電子メール コンテンツを表示します。ここで何が欠けていますか?