提问者:小点点

有没有办法将布局资源文件中的文本视图使用到activity类中?


一般来说,我正在尝试创建一个聊天机器人应用程序,但我没有任何代码可供参考和尝试自己…到目前为止,我已经完成了发送者消息部分,并在firebase数据库中更新了它…现在如何使接收者文本一旦更新发送者文本就会出现?

我为发送者味精部分和接收者味精部分和适配器Java类和另一个activity中的回收器视图有分开的布局

我想到使用接收器布局资源中的textview,并使用set text..如果能行,有人告诉我怎么做

提前道谢!


共1个答案

匿名用户

我不确定我是否正确地理解了您的意思,但我假设您的意思是希望消息显示在左侧或右侧,如果这样的话,您可以有两个变量:

private static final int MESSAGE_RIGHT = 1;
private static final int MESSAGE_LEFT = 0;

然后,在适配器中,您可以像这样调用getItemViewType,使其在给定消息类型的情况下选择要返回的视图类型:

@Override
public int getItemViewType(int position) {
    if (messageList.get(position).getUid().equals(Common.CURRENT_USER_ID)){
        return MESSAGE_RIGHT;
    }else {
        return MESSAGE_LEFT;
    }
}

然后,在OnCreateViewWholder中返回特定消息类型的正确ViewWholder,不管是左消息类型还是右消息类型,如下所示:

    @NonNull
@Override
public DirectMessageAdapter.ViewHolderForDirectMessage onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view;
    if (viewType == MESSAGE_LEFT){
        view = LayoutInflater.from(context).inflate(R.layout.message_type_left_format, parent, false);
    }else {
        view = LayoutInflater.from(context).inflate(R.layout.message_type_right_format, parent, false);
    }
    return new ViewHolderForDirectMessage(view);
}