80,351
社区成员
发帖
与我相关
我的任务
分享
public class MainActivity extends Activity {
private ListView msgListView;
private EditText inputText;
private Button send;
private MsgAdapter adapter;
private List<Msg> msgList = new ArrayList<Msg>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initMsgs();
adapter = new MsgAdapter(MainActivity.this,R.layout.msg_item,msgList);
inputText = (EditText) findViewById(R.id.input_text);
send = (Button) findViewById(R.id.send);
msgListView = (ListView) findViewById(R.id.msg_list_view);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String content = inputText.getText().toString();
if(!"".equals(content)){
Msg msg = new Msg(content, Msg.TYPE_SENT);
Log.d("TAG",msgList.toString());
msgList.add(msg);
adapter.notifyDataSetChanged();
msgListView.setSelection(msgList.size());
inputText.setText("");
}
}
});
}
private void initMsgs(){
Msg msg1 = new Msg("Hello!",Msg.TYPE_RECEIVED);
msgList.add(msg1);
Msg msg2 = new Msg("good.",Msg.TYPE_RECEIVED);
msgList.add(msg2);
Msg msg3 = new Msg("what?",Msg.TYPE_RECEIVED);
msgList.add(msg3);
Msg msg4 = new Msg("You are right.",Msg.TYPE_RECEIVED);
msgList.add(msg4);
}
}
public class MsgAdapter extends ArrayAdapter<Msg> {
private int resourceId;
public MsgAdapter(Context context, int textViewResourceId, List<Msg> objects) {
super(context, textViewResourceId, objects);
resourceId = textViewResourceId;
Log.d("TAG","GET RESOURCEID");
}
@Override
public int getCount(){
int text = super.getCount();
Log.d("TAG", "COUNT RUNNING"+text);
return text;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
Msg msg = getItem(position);
View view;
ViewHolder viewHolder;
if(convertView == null){
view = LayoutInflater.from(getContext()).inflate(resourceId, null);
viewHolder = new ViewHolder();
viewHolder.leftLayout = (LinearLayout) view.findViewById(R.id.left_layout);
viewHolder.rightLayout = (LinearLayout) view.findViewById(R.id.right_layout);
viewHolder.leftMsg = (TextView) view.findViewById(R.id.left_msg);
viewHolder.rightMsg = (TextView) view.findViewById(R.id.right_msg);
view.setTag(viewHolder);
}
else{
view = convertView;
viewHolder = (ViewHolder)view.getTag();
}
Log.d("TAG","GETVIEW RUNNING");
if(msg.getType() == Msg.TYPE_RECEIVED){
viewHolder.leftLayout.setVisibility(View.VISIBLE);
viewHolder.rightLayout.setVisibility(View.GONE);
Log.d("TAG","1122");
viewHolder.leftMsg.setText(msg.getContent());
}
else if(msg.getType() == Msg.TYPE_SENT){
viewHolder.rightLayout.setVisibility(View.VISIBLE);
viewHolder.leftLayout.setVisibility(View.GONE);
Log.d("TAG","2211");
viewHolder.rightMsg.setText(msg.getContent());
}
return view;
}
class ViewHolder{
LinearLayout leftLayout;
LinearLayout rightLayout;
TextView leftMsg;
TextView rightMsg;
}
}