如何在片段中实现EmojiTextView?

问题描述 投票:0回答:1

我在Cloud Firestore的其中一个数据中有一个表情符号。如何使该值在片段,recycleview中可读?当添加旧的表情符号(例如😭)时,它会显示在我的回收者视图中,但是在添加新的表情符号(例如“🥺”)时显示。是因为我的android键盘或语言没有更新吗?我希望任何人都能解决我的问题。

ForumAdapter.java

public ForumHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        android.view.View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardviewforumtitle,parent,false);
        EmojiCompat.init(new BundledEmojiCompatConfig(v.getContext()));
        return new ForumHolder(v);

    }
    class ForumHolder extends RecyclerView.ViewHolder{
        EmojiTextView textViewTitle;
        EmojiTextView textViewDescription;
        EmojiTextView timeStamp;
        /*
        TextView textViewTitle;
        TextView textViewDescription;
        TextView timeStamp;*/
        public ForumHolder(View itemView) {
            super(itemView);
            textViewTitle = itemView.findViewById(R.id.tvTitle);
            textViewDescription = itemView.findViewById(R.id.tvDescription);
            timeStamp = itemView.findViewById(R.id.tvTimestamp);

            textViewTitle.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    int position = getAdapterPosition();
                    // NO_POSITION to prevent app crash when click -1 index
                    if(position != RecyclerView.NO_POSITION && listener !=null ){
                        listener.onItemClick(getSnapshots().getSnapshot(position),position);
                    }
                }
            });
        }
    }

因为出现此错误

java.lang.ClassCastException: androidx.appcompat.widget.AppCompatTextView cannot be cast to androidx.emoji.widget.EmojiTextView

cardviewforumtitle.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tvTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="name"
            android:textSize="15sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tvDescription"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="description"
            android:textSize="15sp" />

        <TextView
            android:id="@+id/tvTimestamp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="timestamp"
            android:textSize="15sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1">

        <ImageView
            android:id="@+id/profilePic"
            android:layout_width="match_parent"
            android:layout_height="match_parent"></ImageView>

    </LinearLayout>
</LinearLayout>
android google-cloud-firestore fragment emoji
1个回答
0
投票

尝试用[替换TextViews

<androidx.emoji.widget.EmojiTextView
   ..../>

在布局中。

© www.soinside.com 2019 - 2024. All rights reserved.