Android 使用if语句的内部更改布局或视图

Android 使用if语句的内部更改布局或视图,android,firebase-realtime-database,android-recyclerview,adapter,android-adapter,Android,Firebase Realtime Database,Android Recyclerview,Adapter,Android Adapter,我正在尝试制作一个应用程序,使用户能够使用文本消息和音频消息进行交互。我能够发送和检索消息,但我面临的问题是,当我尝试检查接收到的消息是文本还是音频时,会收到NullPointerException。我要做的是首先检查文本类型,然后根据消息类型选择适当的布局视图。我使用了适配器,这是我的代码: public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MyMessageViewHolder>{

我正在尝试制作一个应用程序,使用户能够使用文本消息和音频消息进行交互。我能够发送和检索消息,但我面临的问题是,当我尝试检查接收到的消息是文本还是音频时,会收到NullPointerException。我要做的是首先检查文本类型,然后根据消息类型选择适当的布局视图。我使用了适配器,这是我的代码:

public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MyMessageViewHolder>{


 private ArrayList<Messages> arrayListMessages= new ArrayList<>();
 private Context mcontext;
 FirebaseAuth mAuth;


 private String Type = null;

public static class myAudioMessageViewHolder extends RecyclerView.ViewHolder{
    TextView rec_start;
    TextView rec_end;
    ImageButton myPlay;
    SeekBar audio_seek;

    public myAudioMessageViewHolder(View itemView){
        super(itemView);
        rec_start = itemView.findViewById(R.id.time_elapsed);
        rec_end = itemView.findViewById(R.id.finish_time);
        myPlay = itemView.findViewById(R.id.play_btn);
        audio_seek = itemView.findViewById(R.id.my_seekbar);

    }
}

public static class MyMessageViewHolder extends RecyclerView.ViewHolder{

    TextView textViewMessage;
    CircleImageView UserProfile;


    public MyMessageViewHolder(View itemView) {
        super(itemView);

        textViewMessage = itemView.findViewById(R.id.messageTextView);
        UserProfile = itemView.findViewById(R.id.message_profile_layout);
    }


}


public ArrayAdapter adapter;

public MessageAdapter(Context context, ArrayList<Messages> arrayListMessages){
    this.arrayListMessages = arrayListMessages;
    mcontext = context;
}

@Override
public MyMessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType ) {


    if (Type.equals("audio")){ // This should be the determinant on the view being chosen and it should call type from database
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.audio_message_layout, parent, false);
        return new MyMessageViewHolder(view);
    }else if (Type.equals("text")){
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_single_layout, parent,false);


        return new MyMessageViewHolder(view);
    }
    else {
        return null;
    }

}

@Override
public void onBindViewHolder(final MyMessageViewHolder holder, final int position) {

    mAuth = FirebaseAuth.getInstance();
    String mCurrentUser = mAuth.getCurrentUser().getUid();

    final Messages messages = arrayListMessages.get(position);
    String message_type = messages.getType();
    String from_user = messages.getFrom();


    mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(from_user);

    if(mCurrentUser.equals(messages.getFrom())){
        holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bg_primary);
        holder.textViewMessage.setTextIsSelectable(true);
        holder.textViewMessage.setGravity(Gravity.RIGHT);
        holder.textViewMessage.setTextColor(Color.WHITE);

        holder.textViewMessage.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view)
            {
                CharSequence options[] = new CharSequence[]{"Delete", "Copy Text"};
                final AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
                builder.setTitle("Select Options");
                builder.setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        //Click Event for each item.
                        if (i == 0) {

                            String selectedItem = messages.getMessage();
                            arrayListMessages.remove(selectedItem);


                            Toast.makeText(mcontext, "Message deleted", Toast.LENGTH_SHORT).show();


                        }


                        if (i == 1)
                        {

                            ClipboardManager cm = (ClipboardManager) mcontext.getSystemService(Context.CLIPBOARD_SERVICE);
                            cm.setText(holder.textViewMessage.getText());
                            Toast.makeText(mcontext, "Copied to clipboard", Toast.LENGTH_SHORT).show();



                        }

                    }
                });


                builder.show();
                return true;
            }
        });
    }else{
        holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bd_white);
        holder.textViewMessage.setTextIsSelectable(true);
        holder.textViewMessage.setGravity(Gravity.LEFT);
        holder.textViewMessage.setTextColor(Color.BLACK);

        holder.textViewMessage.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {


                CharSequence options[] = new CharSequence[]{"Delete", "Copy Text"};
                final AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
                builder.setTitle("Select Options");
                builder.setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        //Click Event for each item.
                        if (i == 0) {

                            String selectedItem = messages.getMessage();
                            arrayListMessages.remove(selectedItem);
                            adapter.notifyDataSetChanged();

                            Toast.makeText(mcontext, "Message deleted", Toast.LENGTH_SHORT).show();


                        }


                        if (i == 1)
                        {

                            ClipboardManager cm = (ClipboardManager) mcontext.getSystemService(Context.CLIPBOARD_SERVICE);
                            cm.setText(holder.textViewMessage.getText());
                            Toast.makeText(mcontext, "Copied to clipboard", Toast.LENGTH_SHORT).show();



                        }

                    }
                });


                builder.show();
                return true;

            }

        });
    }
    holder.textViewMessage.setText(messages.getMessage());

    if(message_type.equals("text")) {

        Type = messages.getType(); // Here i am trying to get the message type and then use it to get Inflator view of a text type
        holder.textViewMessage.setText(messages.getMessage());

    }
    else if(message_type.equals("audio"))
    {

         Type = messages.getType();  // Here i am trying to get the message type and then use it to get Inflator view of a audio type

    }


}


@Override
public int getItemCount() {
    return arrayListMessages.size();
 }

}
在设备上运行应用程序后,我出现以下错误:

FATAL EXCEPTION: main
Process: com.rescuex_za.rescuex, PID: 22285
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
        at com.rescuex_za.rescuex.MessageAdapter.onCreateViewHolder(MessageAdapter.java:92)
        at com.rescuex_za.rescuex.MessageAdapter.onCreateViewHolder(MessageAdapter.java:37)
        at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6519)
我正在从数据库中获取并检查消息。如何读取消息类型?请提供完整的细节或建议,因为我还是android开发新手,希望了解我在做什么。多谢各位

在遵循AL建议的方法之后,我没有得到我想要的观点,这是我在提问时发布的课程的更新

1.讯息类别

公共类消息{

public static final int TEXT_TYPE=0;
public static final int AUDIO_TYPE=1;

String message,type,from;
long time;
boolean seen;
int type_text;

public Messages(){
    // for datashnap shot
}
public Messages(String message, String type, long time, boolean seen, String from) {
    this.message = message;
    this.type = type;
    this.time = time;
    this.seen = seen;
    this.from=from;

    if (type.equals("text")){
        this.type_text=TEXT_TYPE;
    } else if (type.equals("recording")){
        this.type_text=AUDIO_TYPE;
    }
}

public String getFrom() {
    return from;
}

public void setFrom(String from) {
    this.from = from;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public long getTime() {
    return time;
}

public void setTime(long time) {
    this.time = time;
}

public boolean isSeen() {
    return seen;
}

public void setSeen(boolean seen) {
    this.seen = seen;
}
}

这是我的适配器类

 public class MessageAdapter extends 
 RecyclerView.Adapter<MessageAdapter.MyMessageViewHolder>{


private ArrayList<Messages> arrayListMessages= new ArrayList<>();
private Context mcontext;
FirebaseAuth mAuth;
private DatabaseReference mUserDatabase;
private ViewGroup parent;


public static class myAudioMessageViewHolder extends MyMessageViewHolder{
    TextView rec_start;
    TextView rec_end;
    ImageButton myPlay;
    SeekBar audio_seek;

    public myAudioMessageViewHolder(View itemView){
        super(itemView);
        rec_start = itemView.findViewById(R.id.time_elapsed);
        rec_end = itemView.findViewById(R.id.finish_time);
        myPlay = itemView.findViewById(R.id.play_btn);
        audio_seek = itemView.findViewById(R.id.my_seekbar);

    }
}

public static class MyMessageViewHolder extends RecyclerView.ViewHolder{

    TextView textViewMessage;
    CircleImageView UserProfile;


    public MyMessageViewHolder(View itemView) {
        super(itemView);

        textViewMessage = itemView.findViewById(R.id.messageTextView);
        UserProfile = itemView.findViewById(R.id.message_profile_layout);
    }


}


public ArrayAdapter adapter;

public MessageAdapter(Context context, ArrayList<Messages> arrayListMessages){
    this.arrayListMessages = arrayListMessages;
    mcontext = context;
}

@Override
public MyMessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType ) {


    View view;
    switch (viewType) {
        case Messages.TEXT_TYPE:
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_single_layout, parent, false);
            return new myAudioMessageViewHolder(view);
        case Messages.AUDIO_TYPE:
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.audio_message_layout, parent, false);
            return new MyMessageViewHolder(view);
    }
    return null;
}


@Override
public int getItemViewType(int position) {

    switch (arrayListMessages.get(position).type_text) {
        case 0:
            return Messages.TEXT_TYPE;
        case 1:
            return Messages.AUDIO_TYPE;
        default:
            return -1;
    }
}

@Override
public void onBindViewHolder(final MyMessageViewHolder holder, final int position) {

    mAuth = FirebaseAuth.getInstance();
    String mCurrentUser = mAuth.getCurrentUser().getUid();

    final Messages messages = arrayListMessages.get(position);
    String message_type = messages.getType();
    String from_user = messages.getFrom();


    mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(from_user);

    if(mCurrentUser.equals(messages.getFrom())){
        holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bg_primary);
        holder.textViewMessage.setTextIsSelectable(true);
        holder.textViewMessage.setGravity(Gravity.RIGHT);
        holder.textViewMessage.setTextColor(Color.WHITE);

        holder.textViewMessage.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view)
            {
                CharSequence options[] = new CharSequence[]{"Delete", "Copy Text"};
                final AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
                builder.setTitle("Select Options");
                builder.setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        //Click Event for each item.
                        if (i == 0) {

                            String selectedItem = messages.getMessage();
                            arrayListMessages.remove(selectedItem);


                            Toast.makeText(mcontext, "Message deleted", Toast.LENGTH_SHORT).show();


                        }


                        if (i == 1)
                        {

                            ClipboardManager cm = (ClipboardManager) mcontext.getSystemService(Context.CLIPBOARD_SERVICE);
                            cm.setText(holder.textViewMessage.getText());
                            Toast.makeText(mcontext, "Copied to clipboard", Toast.LENGTH_SHORT).show();



                        }

                    }
                });


                builder.show();
                return true;
            }
        });
    }else{
        holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bd_white);
        holder.textViewMessage.setTextIsSelectable(true);
        holder.textViewMessage.setGravity(Gravity.LEFT);
        holder.textViewMessage.setTextColor(Color.BLACK);

        holder.textViewMessage.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {


                CharSequence options[] = new CharSequence[]{"Delete", "Copy Text"};
                final AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
                builder.setTitle("Select Options");
                builder.setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        //Click Event for each item.
                        if (i == 0) {

                            String selectedItem = messages.getMessage();
                            arrayListMessages.remove(selectedItem);
                            adapter.notifyDataSetChanged();

                            Toast.makeText(mcontext, "Message deleted", Toast.LENGTH_SHORT).show();


                        }


                        if (i == 1)
                        {

                            ClipboardManager cm = (ClipboardManager) mcontext.getSystemService(Context.CLIPBOARD_SERVICE);
                            cm.setText(holder.textViewMessage.getText());
                            Toast.makeText(mcontext, "Copied to clipboard", Toast.LENGTH_SHORT).show();



                        }

                    }
                });


                builder.show();
                return true;

            }

        });
    }
    holder.textViewMessage.setText(messages.getMessage());

    if(message_type.equals("text")) {

         // Here i am trying to get the message type and then use it to get Inflator view of a text type
        holder.textViewMessage.setText(messages.getMessage());

    }
    else if(message_type.equals("recording"))
    {

           // Here i am trying to get the message type and then use it to get Inflator view of a audio type

    }


}


@Override
public int getItemCount() {
    return arrayListMessages.size();
}


 }
公共类MessageAdapter扩展
RecyclerView.适配器{
私有ArrayList arrayListMessages=新ArrayList();
私有上下文;
FirebaseAuth mAuth;
私人数据库参考博物馆数据库;
私有视图组父级;
公共静态类myAudioMessageViewHolder扩展了MyMessageViewHolder{
文本视图记录启动;
文本视图记录结束;
我的游戏;
SeekBar音频搜索;
公共myAudioMessageViewHolder(查看项目视图){
超级(项目视图);
rec\u start=itemView.findviewbyd(R.id.time\u经过的时间);
rec_end=itemView.findviewbyd(R.id.finish_time);
myPlay=itemView.findviewbyd(R.id.play\u btn);
audio\u seek=itemView.findviewbyd(R.id.my\u seekbar);
}
}
公共静态类MyMessageViewHolder扩展了RecyclerView.ViewHolder{
文本视图文本视图消息;
CircleImageView用户配置文件;
公共MyMessageViewHolder(查看项目视图){
超级(项目视图);
textViewMessage=itemView.findViewById(R.id.messageTextView);
UserProfile=itemView.findviewbyd(R.id.message\u profile\u布局);
}
}
公共阵列适配器;
公共消息适配器(上下文上下文,ArrayList arrayListMessages){
this.arrayListMessages=arrayListMessages;
mcontext=上下文;
}
@凌驾
public MyMessageViewHolder onCreateViewHolder(视图组父级,int-viewType){
视图;
开关(视图类型){
case Messages.TEXT\u类型:
view=LayoutInflater.from(parent.getContext()).flate(R.layout.message\u single\u布局,parent,false);
返回新的myAudioMessageViewHolder(视图);
案例消息。音频类型:
view=LayoutInflater.from(parent.getContext()).flate(R.layout.audio\u message\u布局,parent,false);
返回新的MyMessageViewHolder(视图);
}
返回null;
}
@凌驾
public int getItemViewType(int位置){
开关(arrayListMessages.get(position).type_text){
案例0:
返回消息。文本类型;
案例1:
返回消息。音频类型;
违约:
返回-1;
}
}
@凌驾
public void onBindViewHolder(最终MyMessageViewHolder,最终int位置){
mAuth=FirebaseAuth.getInstance();
字符串mCurrentUser=mAuth.getCurrentUser().getUid();
final Messages=arrayListMessages.get(位置);
字符串message_type=messages.getType();
字符串from_user=messages.getFrom();
mUserDatabase=FirebaseDatabase.getInstance().getReference().child(“用户”).child(来自用户);
if(mCurrentUser.equals(messages.getFrom())){
holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bg_primary);
holder.textViewMessage.setTextIsSelectable(true);
holder.textViewMessage.setGravity(Gravity.RIGHT);
holder.textViewMessage.setTextColor(Color.WHITE);
holder.textViewMessage.setOnLongClickListener(新视图.OnLongClickListener(){
@凌驾
仅长按公共布尔值(视图)
{
CharSequence选项[]=新的CharSequence[]{“删除”,“复制文本”};
final AlertDialog.Builder=新建AlertDialog.Builder(mcontext);
builder.setTitle(“选择选项”);
setItems(选项,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(DialogInterface,inti){
//单击每个项目的事件。
如果(i==0){
字符串selectedItem=messages.getMessage();
arrayListMessages.remove(选择editem);
Toast.makeText(mcontext,“消息已删除”,Toast.LENGTH_SHORT.show();
}
如果(i==1)
{
ClipboardManager cm=(ClipboardManager)mcontext.getSystemService(Context.CLIPBOARD\u服务);
cm.setText(holder.textViewMessage.getText());
Toast.makeText(mcontext,“复制到剪贴板”,Toast.LENGTH_SHORT.show();
}
}
});
builder.show();
返回true;
}
});
}否则{
holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bd_white);
holder.textViewMessage.setTextIsSelectable(true);
holder.textViewMessage.setGravity(Gravity.LEFT);
holder.textViewMessage.setTextColor(Color.BLACK);
holder.textViewMessage.setOnLongClickListener(新视图.OnLongClickListener(){
@凌驾
仅长按公共布尔值(视图){
CharSequence选项[]=新的CharSequence[]{“删除”,“复制文本”};
final AlertDialog.Builder=新建AlertDialog.Builder(mcontext);
日分
 public class MessageAdapter extends 
 RecyclerView.Adapter<MessageAdapter.MyMessageViewHolder>{


private ArrayList<Messages> arrayListMessages= new ArrayList<>();
private Context mcontext;
FirebaseAuth mAuth;
private DatabaseReference mUserDatabase;
private ViewGroup parent;


public static class myAudioMessageViewHolder extends MyMessageViewHolder{
    TextView rec_start;
    TextView rec_end;
    ImageButton myPlay;
    SeekBar audio_seek;

    public myAudioMessageViewHolder(View itemView){
        super(itemView);
        rec_start = itemView.findViewById(R.id.time_elapsed);
        rec_end = itemView.findViewById(R.id.finish_time);
        myPlay = itemView.findViewById(R.id.play_btn);
        audio_seek = itemView.findViewById(R.id.my_seekbar);

    }
}

public static class MyMessageViewHolder extends RecyclerView.ViewHolder{

    TextView textViewMessage;
    CircleImageView UserProfile;


    public MyMessageViewHolder(View itemView) {
        super(itemView);

        textViewMessage = itemView.findViewById(R.id.messageTextView);
        UserProfile = itemView.findViewById(R.id.message_profile_layout);
    }


}


public ArrayAdapter adapter;

public MessageAdapter(Context context, ArrayList<Messages> arrayListMessages){
    this.arrayListMessages = arrayListMessages;
    mcontext = context;
}

@Override
public MyMessageViewHolder onCreateViewHolder(ViewGroup parent, int viewType ) {


    View view;
    switch (viewType) {
        case Messages.TEXT_TYPE:
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.message_single_layout, parent, false);
            return new myAudioMessageViewHolder(view);
        case Messages.AUDIO_TYPE:
            view = LayoutInflater.from(parent.getContext()).inflate(R.layout.audio_message_layout, parent, false);
            return new MyMessageViewHolder(view);
    }
    return null;
}


@Override
public int getItemViewType(int position) {

    switch (arrayListMessages.get(position).type_text) {
        case 0:
            return Messages.TEXT_TYPE;
        case 1:
            return Messages.AUDIO_TYPE;
        default:
            return -1;
    }
}

@Override
public void onBindViewHolder(final MyMessageViewHolder holder, final int position) {

    mAuth = FirebaseAuth.getInstance();
    String mCurrentUser = mAuth.getCurrentUser().getUid();

    final Messages messages = arrayListMessages.get(position);
    String message_type = messages.getType();
    String from_user = messages.getFrom();


    mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(from_user);

    if(mCurrentUser.equals(messages.getFrom())){
        holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bg_primary);
        holder.textViewMessage.setTextIsSelectable(true);
        holder.textViewMessage.setGravity(Gravity.RIGHT);
        holder.textViewMessage.setTextColor(Color.WHITE);

        holder.textViewMessage.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view)
            {
                CharSequence options[] = new CharSequence[]{"Delete", "Copy Text"};
                final AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
                builder.setTitle("Select Options");
                builder.setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        //Click Event for each item.
                        if (i == 0) {

                            String selectedItem = messages.getMessage();
                            arrayListMessages.remove(selectedItem);


                            Toast.makeText(mcontext, "Message deleted", Toast.LENGTH_SHORT).show();


                        }


                        if (i == 1)
                        {

                            ClipboardManager cm = (ClipboardManager) mcontext.getSystemService(Context.CLIPBOARD_SERVICE);
                            cm.setText(holder.textViewMessage.getText());
                            Toast.makeText(mcontext, "Copied to clipboard", Toast.LENGTH_SHORT).show();



                        }

                    }
                });


                builder.show();
                return true;
            }
        });
    }else{
        holder.textViewMessage.setBackgroundResource(R.drawable.custom_message_bd_white);
        holder.textViewMessage.setTextIsSelectable(true);
        holder.textViewMessage.setGravity(Gravity.LEFT);
        holder.textViewMessage.setTextColor(Color.BLACK);

        holder.textViewMessage.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {


                CharSequence options[] = new CharSequence[]{"Delete", "Copy Text"};
                final AlertDialog.Builder builder = new AlertDialog.Builder(mcontext);
                builder.setTitle("Select Options");
                builder.setItems(options, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                        //Click Event for each item.
                        if (i == 0) {

                            String selectedItem = messages.getMessage();
                            arrayListMessages.remove(selectedItem);
                            adapter.notifyDataSetChanged();

                            Toast.makeText(mcontext, "Message deleted", Toast.LENGTH_SHORT).show();


                        }


                        if (i == 1)
                        {

                            ClipboardManager cm = (ClipboardManager) mcontext.getSystemService(Context.CLIPBOARD_SERVICE);
                            cm.setText(holder.textViewMessage.getText());
                            Toast.makeText(mcontext, "Copied to clipboard", Toast.LENGTH_SHORT).show();



                        }

                    }
                });


                builder.show();
                return true;

            }

        });
    }
    holder.textViewMessage.setText(messages.getMessage());

    if(message_type.equals("text")) {

         // Here i am trying to get the message type and then use it to get Inflator view of a text type
        holder.textViewMessage.setText(messages.getMessage());

    }
    else if(message_type.equals("recording"))
    {

           // Here i am trying to get the message type and then use it to get Inflator view of a audio type

    }


}


@Override
public int getItemCount() {
    return arrayListMessages.size();
}


 }