android - 无法在我的 Android 应用程序的 TextView 中看到默认的 Android 表情符号

标签 android android-layout android-adapter android-keypad android-adapterview

我正在开发一个短信 android 应用程序,当我发送一 strip 有 android 键盘表情符号的短信并在另一个 android 手机上接收它时,它显示 ?? (双问号)。 我怎样才能在我的 TextView 中看到那个表情符号?

如下所示,我正在附加该短信

holder.chatText.setText(tempValues.getMessageText()+" \n ");

然后将该消息发送到服务器,如下所示

 public class SyncPendingMessageToServer extends AsyncTask<String, Void, Boolean> {
    protected void onPreExecute() {
        //doShowLoading("Please Wait");
    }

    protected Boolean doInBackground(String... params) {
        if(Config.isInternetOn(getApplicationContext())  && loginUserInfoId == "") {
            List<ChatMessage> allChatMessage = db.getAllMessage();
            for (ChatMessage chatMessage : allChatMessage) {

                if (chatMessage.getIsPending() == 1 && chatMessage.getMediaMIMEType().isEmpty()) {
                    String msgText = chatMessage.getMessageText();

                    HttpClient myClient = new DefaultHttpClient();
                    HttpPost myConnection = new HttpPost(Config.HOST_NAME + "/AndroidApp/SendMessage");

                    try {
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                        nameValuePairs.add(new BasicNameValuePair("messageText", msgText));
                        nameValuePairs.add(new BasicNameValuePair("senderUserInfoId", chatMessage.getSenderUserInfoId()));
                        nameValuePairs.add(new BasicNameValuePair("recieverUserInfoId", chatMessage.getReceiverUserInfoId()));
                        nameValuePairs.add(new BasicNameValuePair("messageThreadId", chatMessage.getOriginalMsgThreadId()));
                        nameValuePairs.add(new BasicNameValuePair("url", ""));
                        nameValuePairs.add(new BasicNameValuePair("fileType", ""));

                        if(chatMessage.getIsPendingToUpdate() == 0) {
                            nameValuePairs.add(new BasicNameValuePair("msgType", ""));
                        }
                        if(chatMessage.getIsPendingToUpdate() == 1) {
                            nameValuePairs.add(new BasicNameValuePair("msgType", "GROUP"));
                        }

                        myConnection.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                        myClient.execute(myConnection);

                    } catch (ClientProtocolException e) {
                        Toast.makeText(getApplicationContext(), "Message sending Failed!", Toast.LENGTH_LONG).show();
                        //e.printStackTrace();
                    } catch (IOException e) {
                        //e.printStackTrace();
                    }
                }
            }
            db.updateSyncedMessage();
        }
        return true;
    }

    protected void onPostExecute(Boolean status) {
        //do whatever you want in this method
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                new SyncPendingMessageToServer().execute();
            }
        }, 200);
    }
}

最佳答案

Android 从 4.4 开始支持表情符号。一些供应商在以前的 Android 版本中内置了表情符号,但你不能依赖它。
最好的选择是使用一些允许在 TextView 中显示表情符号的库,emojicon就是其中之一。

关于android - 无法在我的 Android 应用程序的 TextView 中看到默认的 Android 表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799769/

相关文章:

android - 我的自定义适配器 (android) 怎么了?

android - 美化我的 Android 应用程序?

android - 使用 UIAutomator 获取 android.widget.ListView 的所有子级

android - 即使将可见性设置为 gone 后,带权重的布局也会占用空间

java - View 未显示在 RelativeLayout 中

java - android中fragment之间共享数据

android - 当我们滚动时,RecyclerView 如何从 Adapter 获取 1 个额外的 View

java - 无法删除 Firebase 中的子节点

android - 已弃用带有 ClientLogin 的 C2DM

java - Dimens 文件中定义的字体大小,在 Java 类中显示 3 倍值