MainActivity.java 3.19 KB
package com.cnlive.demo.chat;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;

import com.cnlive.demo.chat.util.ChatUtil;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private ChatUtil mChatUtil;
    private static final String name = "游客";
    //测试聊天室 房间号
    private static final String room = "60_123456";

    private EditText editText;
    private ListView listView;
    private Button button;
    private TextView chatState;
    private List<String> list = new ArrayList<>();
    private BaseAdapter adapter;

    private void initTestView() {
        editText = (EditText) findViewById(R.id.edit_send);
        listView = (ListView) findViewById(android.R.id.list);
        button = (Button) findViewById(R.id.btn_send);
        chatState = (TextView) findViewById(R.id.chat_state);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String msg = editText.getText().toString();
                sendMessage(msg);
                editText.setText("");
            }
        });

        listView.setAdapter(adapter = new BaseAdapter() {
            @Override
            public int getCount() {
                return list.size();
            }

            @Override
            public Object getItem(int position) {
                return list.get(position);
            }

            @Override
            public long getItemId(int position) {
                return position;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) convertView = new TextView(parent.getContext());
                ((TextView) convertView).setText(list.get(position));
                return convertView;
            }
        });
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initTestView();

        mChatUtil = new ChatUtil(this);
        mChatUtil.setStateView(chatState);
        mChatUtil.setOnMessageListener(new ChatUtil.OnMessageListener() {
            @Override
            public void onMessage(String message) {
                list.add(message);
                adapter.notifyDataSetChanged();
                listView.setSelection(list.size() - 1);
            }
        });

        mChatUtil.initChat(room, name);
        mChatUtil.connectChat();
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        //页面关闭 销毁ChatConnect对象
        mChatUtil.destroy();
    }

    public void sendMessage(String msg) {
        if (TextUtils.isEmpty(msg)) return;
        //判断登录状态 发送消息
        if (mChatUtil.isJoin()) {
            //发送聊天信息
            mChatUtil.sendMessage(msg);
        }
    }

}