3
String x="Hello World";
String y="You Rock!!!";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", x); 
sendIntent.putExtra("sms_body", y); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);

SMS経由で複数のメッセージ本文を送信しようとしていますが、「YouRock!!!」のみです。表示されています。私がやりたいのは、複数のメッセージを表示して、(異なる行に)事前にフォーマットしてもらうことです。

たとえば...

Hello World
You Rock!!!
4

2 に答える 2

6

複数行のメッセージを送信する場合は、2つの文字列の間に改行を入れてください。

x + "\n" + y

複数のメッセージを送信したい場合、それを行う方法はありません、私は知っています。[startActivityForResult] [1]を使用してから、アクティビティ[onActivityResult] [2]メソッドで、次のメッセージを送信できます。

[1]:http ://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent 、int)

[2]: http ://developer.android.com/reference/android/app/Activity.html#onActivityResult (int、int、android.content.Intent)

于 2011-02-16T07:46:47.627 に答える
3

問題は、拡張データをオーバーライドしていることです。putExtra は、Bundle 引数 (2 番目の引数) 内に書き込むすべてをリストに追加するのではなく、その内容をリセットするためです。そのため、最初に「sms_body」という名前のエクストラを「Hello World」に設定し、次にそれを「You Rock!!!」にリセットしたため、最後の部分しか表示されません。

試したことはありませんが、次のようにするとうまくいく可能性があります。

String smsBody="Hello World\nYou Rock!!!";
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", smsBody); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);

文字 \n は改行 (http://en.wikipedia.org/wiki/Newline) の特殊文字です。これは、その文字列を 2 行に分けて記述していることを意味します (\n の場所で分割します)。\n はほぼすべての String 表現に存在するため、ここでも機能します。試してみて、教えてください。

ところで、アドバイスとして、変数には (x や y だけでなく) わかりやすい名前を付けるようにしてください。コードを再利用したい場合やエラーを見つけた場合は、x または y が正確に何であるかを知りたいと思うかもしれません。

よろしくお願いします

于 2011-02-16T08:00:01.963 に答える