Skip to content

Instantly share code, notes, and snippets.

@elktros
Created August 3, 2019 07:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elktros/02927194e6f2b890a0355c9d3dab9bca to your computer and use it in GitHub Desktop.
Save elktros/02927194e6f2b890a0355c9d3dab9bca to your computer and use it in GitHub Desktop.
Quadruped_Robot_messageAdapter
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
public class MessageAdapter extends BaseAdapter {
List<Message> messages = new ArrayList<Message>();//stores the conversation between user & bot
Context context;
public MessageAdapter(Context context) {
this.context = context;
}
//add the new message coversation
public void add(Message message) {
this.messages.add(message);
notifyDataSetChanged(); whenever there is a change in listview, this method is called to refresh
}
@Override
public int getCount() {
return messages.size(); // get the count of messages
}
@Override
public Object getItem(int i) {
return messages.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
MessageViewHolder holder = new MessageViewHolder();
LayoutInflater messageInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
Message message = messages.get(i);
if (message.isBelongsToCurrentUser()) { // User message
convertView = messageInflater.inflate(R.layout.my_message, null);
holder.messageBody = (TextView) convertView.findViewById(R.id.message_body);
convertView.setTag(holder);
holder.messageBody.setText(message.getText());
} else {
// Bot message
convertView = messageInflater.inflate(R.layout.their_message, null);
holder.avatar = (View) convertView.findViewById(R.id.avatar);
holder.name = (TextView) convertView.findViewById(R.id.name);
holder.messageBody = (TextView) convertView.findViewById(R.id.message_body);
convertView.setTag(holder);
holder.name.setText("Quadruped");
holder.messageBody.setText(message.getText());
GradientDrawable drawable = (GradientDrawable) holder.avatar.getBackground();
}
return convertView;
}
}
class MessageViewHolder {
public View avatar;
public TextView name;
public TextView messageBody;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment