Advertisement
Guest User

Untitled

a guest
Jul 31st, 2014
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. public class MessageActivity extends ListActivity {
  2. /** Called when the activity is first created. */
  3.  
  4. ArrayList<Message> messages;
  5. AwesomeAdapter adapter;
  6. EditText text;
  7.  
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.main);
  12.  
  13. text = (EditText) this.findViewById(R.id.text);
  14.  
  15.  
  16. this.setTitle("Harish");
  17. messages = new ArrayList<Message>();
  18. adapter = new AwesomeAdapter(this, messages);
  19. setListAdapter(adapter);
  20.  
  21. }
  22. public void sendMessage(View v)
  23. {
  24. String newMessage = text.getText().toString().trim();
  25. //String msg="nTesting";
  26. if(newMessage.length() > 0)
  27. {
  28. text.setText("");
  29. //addNewMessage(new Message(newMessage+msg, true));
  30. addNewMessage(new Message(newMessage, true));
  31. }
  32. }
  33. public void sendMessage2(View v)
  34. {
  35. String newMessage = text.getText().toString().trim();
  36. if(newMessage.length() > 0)
  37. {
  38. text.setText("");
  39. addNewMessage(new Message(newMessage, false));
  40.  
  41. }
  42. }
  43. void addNewMessage(Message m)
  44. {
  45. messages.add(m);
  46. adapter.notifyDataSetChanged();
  47. getListView().setSelection(messages.size()-1);
  48. }
  49.  
  50. public class AwesomeAdapter extends BaseAdapter{
  51. private Context mContext;
  52. private ArrayList<Message> mMessages;
  53.  
  54.  
  55.  
  56. public AwesomeAdapter(Context context, ArrayList<Message> messages) {
  57. super();
  58. this.mContext = context;
  59. this.mMessages = messages;
  60. }
  61.  
  62. @Override
  63. public int getCount() {
  64. return mMessages.size();
  65. }
  66.  
  67. @Override
  68. public Object getItem(int position) {
  69. return mMessages.get(position);
  70. }
  71.  
  72. @Override
  73. public View getView(int position, View convertView, ViewGroup parent) {
  74. Message message = (Message) this.getItem(position);
  75.  
  76. ViewHolder holder;
  77. if(convertView == null)
  78. {
  79. holder = new ViewHolder();
  80. convertView = LayoutInflater.from(mContext).inflate(R.layout.sms_row, parent, false);
  81. holder.message = (TextView) convertView.findViewById(R.id.message_text);
  82. convertView.setTag(holder);
  83. }
  84. else
  85. holder = (ViewHolder) convertView.getTag();
  86.  
  87. holder.message.setText(message.getMessage());
  88.  
  89. LayoutParams lp = (LayoutParams) holder.message.getLayoutParams();
  90.  
  91.  
  92. if(message.isMine())
  93. {
  94. holder.message.setBackgroundResource(R.drawable.me);
  95. lp.setMargins(15, 10, 0, 10);
  96.  
  97.  
  98. }
  99.  
  100. else
  101. {
  102. holder.message.setBackgroundResource(R.drawable.you);
  103. lp.setMargins(0, 10, 15, 10);
  104. }
  105. holder.message.setLayoutParams(lp);
  106.  
  107.  
  108. return convertView;
  109. }
  110. private static class ViewHolder
  111. {
  112. TextView message;
  113. }
  114.  
  115.  
  116. @Override
  117. public long getItemId(int position) {
  118. // TODO Auto-generated method stub
  119. return 0;
  120. }
  121.  
  122. public class Message {
  123.  
  124. String message;
  125.  
  126. boolean isMine;
  127.  
  128. public Message(String message, boolean isMine) {
  129. super();
  130. this.message = message;
  131. this.isMine = isMine;
  132.  
  133. }
  134. /**
  135. * Constructor to make a status Message object
  136. * consider the parameters are swaped from default Message constructor,
  137. * not a good approach but have to go with it.
  138. */
  139. public Message(boolean status, String message) {
  140. super();
  141. this.message = message;
  142. this.isMine = false;
  143.  
  144. }
  145. public String getMessage() {
  146. return message;
  147. }
  148.  
  149. public boolean isMine() {
  150. return isMine;
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement