我正在尝试使用意图发送文本。我认为这是直截了当的:
public Intent getIntent() {
final Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, ri.activityInfo.name));
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, getText());
return intent;
}
private String getText(){
// the emoji can be one of many. I removed all that for brevity
final int unicode = 0x1F3C5;
final String emoji = String.valueOf(Character.toChars(unicode));
// final String emoji = "\n1F3C5"; //didn't work either
// I also tried using HTML here but I think I have some wires crossed, so I am not ruling that out yet
return textPartOne + " " + emoji + " " + textPartTwo;
}
如您所见,EXTRA_TEXT
中有一个特殊字符(表情符号)。当文本从设备A
发送时,表情符号就像我期望的那样出现在消息中。但是在设备B
(接收者)上,文本显示了一些疯狂(通常在两个不同的消息中):
@。£¡¡¡¡ | < | | | \< | [¡[¡
3 H£(U @æ@一个@¤¥¡
¡9 @ü@胡@Θ@ = @ø¥P
¡6 @Ö@Δì¿| |
如果我将设备A
的消息发送到设备B
或B
到A
,则无关紧要。我得到了相同的结果,所以我认为表情符号不受支持不是问题。
现在,如果我删除除表情符号代码之外的所有代码:
XAX&安培;
如果我完全删除表情符号代码,它就像一个魅力。
但是客户得有那些表情符号......
其他一些可能值得注意的事项:
我正在使用this to manage what intents我正在向用户展示。他们可以选择彩信,电子邮件,Twitter,Facebook或其他任何东西。我需要支持所有这些
我没有在应用中的任何位置显示表情符号。它们将显示在短信,电子邮件或Facebook / Twitter Feed中。
此应用程序的iOS版本已成功执行此操作。
我have尝试了nearly dozen个ways no 。 有没有人可以对如何正确发送特殊字符有一些见解?
正如你所看到的,我正在发送我想要的表情符号。但结果远非我的预期。这是模拟器向自身发送文本的屏幕截图。 mProLog
以下是我尝试过的部分
String attempt1 = "--";
try {
attempt1 = Html.fromHtml(new String("🏅".getBytes("UTF-8"))).toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
final int codePoint = 0x26F7;
final String attempt2 = new String(new int[]{codePoint}, 0, 1);
final String attempt3 = new String(Character.toChars(codePoint));
final String attempt4 = "\u26F7";
所有结果都是:
& n
如果我在这些文章中添加文字:
final String attempt4 = "COME ON: \u26F7";
我明白了:
@Σ£(ù@æ@ s @@£Å¡7@ X£¿ù¿
总体意义 他讽刺地说
答案 0 :(得分:-1)
您可以使用意图,即在活动之间发送的消息。在intent中,您可以放置所有类型的数据,String,int等。
在您的情况下,在activity2中,在转到activity1之前,您将以这种方式存储String消息:
Intent intent = new Intent(activity2.this, activity1.class);
intent.putExtra("message", getText());
startActivity(intent);
在activity1中,在onCreate()中,您可以通过检索Bundle(包含调用活动发送的所有消息)来获取String消息,并在其上调用getString():
Bundle bundle = getIntent().getExtras();
String message = bundle.getString("message");
然后您可以在TextView中设置文本:
TextView txtView = (TextView) findViewById(R.id.your_resource_textview);
txtView.setText(message);
希望这有帮助!