今天所学习的内容以及做了的内容:
IM即时通讯 群聊 查找好友 添加好友
kotlin 中辍函数 递归
IM即时通讯
群聊 记上一篇日报博客 完成了会话列表 单聊 通讯录 而今天完成了 群聊 查找好友 添加好友
群聊
首先,我们来看一下这个群聊: 说起群聊也就是聊天室的功能
开始我们的聊天室实现:
创建一个Xml 实现创建群聊 和显示群组的布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.QunLiaoActivity"
android:orientation="vertical">
<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="创建群组"/>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
接下来写装群组的listView的适配器 可以写一个最简单的适配器 继承与 BaseAdapter 只要把我们需要的List集合的泛型改为EMGroup 来获取群组的名称之后就可以适配我们的ListView了
开始我们的获取群组的一个方法:
private void inData() {
Model.getInstance().getPoll().execute(new Runnable() {
@Override
public void run() {
//EMClient.getInstance().groupManager().getJoinedGroupsFromServer();
try {
final List<EMGroup> joinedGroupsFromServer = EMClient.getInstance().groupManager().getJoinedGroupsFromServer();
runOnUiThread(new Runnable() {
@Override
public void run() {
list.addAll(joinedGroupsFromServer);
myListAdapter.notifyDataSetChanged();
}
});
} catch (HyphenateException e) {
e.printStackTrace();
}
}
});
}
这样就可以添加到我们的List当中了;
然后点击跳转到群聊界面 其实这个群聊界面是个单聊界面一样的,我们只需要在跳转的时候判断一下就可以;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(QunLiaoActivity.this, liaotianActivity.class);
intent.putExtra(EaseConstant.EXTRA_CHAT_TYPE,EaseConstant.CHATTYPE_GROUP);
List<EMGroup> allGroups = EMClient.getInstance().groupManager().getAllGroups();
intent.putExtra(EaseConstant.EXTRA_USER_ID,allGroups.get(i).getGroupId());//带入我们的群组名称
startActivity(intent);
}
});
跳转界面在其中 带入 类型 EaseConstant.CHATTYPE_GROUP 代表群聊 就可以 并且把我们的群组名称带过去。这样就实现了我们的群聊会话
Kotlin 今天的中辍函数与递归
fun 中辍函数(){
var train =“北京” to “上海”
var t =“北京” .to(“上海”)
println(train)
println(t)
//以上的输出结果为(北京,上海)
}
自定义中辍函数
infix fun String.到(other:String):String{
return this + other;
}
斐波那契数列的递归方法
fun fibo(total:Int)Int = when(total){
0 -> 1
//0时的出口
1 -> 1
//1时的出口
else -> fibo(total - 1) + fibo(total -2)//在这行调用了此方法,为递归
//计算出口
}