MainActivity类
public class MainActivity extends AppCompatActivity {
EditText editTextOne;
EditText editTextTwo;
Button buttonOne;
String groupId = "";
String groupName = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextOne = findViewById(R.id.Edit_One);
editTextTwo = findViewById(R.id.Edit_Two);
buttonOne = findViewById(R.id.Btn_One);
//点击登录
buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//根据输入框得到用户名和密码,判断是否有该用户
NimUIKit.login(new LoginInfo(editTextOne.getText().toString(), editTextTwo.getText().toString()), new RequestCallback<LoginInfo>() {
@Override
public void onSuccess(LoginInfo loginInfo) {
//登录成功,跳转页面,把群聊ID和Name传到下一页面中去
NimUIKit.getAccount();
Intent intent = new Intent(MainActivity.this, WelcomeActivity.class);
intent.putExtra("groupId",groupId);
intent.putExtra("groupName",groupName);
startActivityForResult(intent,0);
}
@Override
public void onFailed(int i) {
}
@Override
public void onException(Throwable throwable) {
}
});
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0&&resultCode == RESULT_OK){
//通过回传,等到群聊的ID和Name
groupId = data.getStringExtra("groupId");
groupName = data.getStringExtra("groupName");
}
}
}
MainActivity的xml
<?xml version="1.0" encoding="utf-8"?>
<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"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="帐号:"
android:textColor="@color/colorAccent" />
<EditText
android:id="@+id/Edit_One"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入您的帐号!" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:orientation="horizontal"
android:paddingLeft="20dp"
android:paddingRight="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码:"
android:textColor="@color/colorAccent" />
<EditText
android:id="@+id/Edit_Two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入您的帐号!" />
</LinearLayout>
<Button
android:id="@+id/Btn_One"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:text="登录!" />
</LinearLayout>
WelcomeActivity类
public class WelcomeActivity extends AppCompatActivity {
ListView listViewOne;
Button buttonOne;
List<String> list = new ArrayList<>();
List<String> arrayList = new ArrayList<>();
String groupId = "";
String groupName = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
listViewOne = findViewById(R.id.List_One);
buttonOne = findViewById(R.id.Btn_Two);
Intent intent = getIntent();
//从上一页面获得群聊的ID和Name
groupId = intent.getStringExtra("groupId");
groupName = intent.getStringExtra("groupName");
//所有用户的集合
final List<String> users = new ArrayList<>();
users.add("asd");
users.add("123456");
users.add("2396779313");
buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//点击退出登录按钮,返回登录页面
Intent intent1 = new Intent(WelcomeActivity.this, MainActivity.class);
//退出同时把本也页面创建的群聊ID和Name回传到登录页面
intent1.putExtra("groupId",groupId);
intent1.putExtra("groupName",groupName);
setResult(RESULT_OK,intent1);
finish();
}
});
//如果上一页面得到的ID为空,代表我们所有用户并没有创建过群聊
if (groupId.equals("")){
//创建群聊
HashMap<TeamFieldEnum, Serializable> fields = new HashMap<TeamFieldEnum, Serializable>();
fields.put(TeamFieldEnum.Name, "xxx最美");
fields.put(TeamFieldEnum.VerifyType, VerifyTypeEnum.Free);
NIMClient.getService(TeamService.class)
.createTeam(fields, TeamTypeEnum.Normal,"",users)
.setCallback(new RequestCallback<CreateTeamResult>() {
@Override
public void onSuccess(CreateTeamResult createTeamResult) {
Toast.makeText(WelcomeActivity.this, "成功创建群组"+ createTeamResult.toString(), Toast.LENGTH_SHORT).show();
//创建成功后获得ID和Name
groupId = createTeamResult.getTeam().getId();
groupName = createTeamResult.getTeam().getName();
//list是为了判断群聊还是单聊
list.add(groupId+"&2");
//arrayLisy是显示listView的数据
arrayList.add(groupName);
//适配器
ArrayAdapter<String> adapter = new ArrayAdapter<>(WelcomeActivity.this,R.layout.support_simple_spinner_dropdown_item,arrayList);
listViewOne.setAdapter(adapter);
Toast.makeText(WelcomeActivity.this, "成功创建群组id" + groupId+ createTeamResult.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed(int i) {
}
@Override
public void onException(Throwable throwable) {
}
});
}
else {
//如果ID有值代表我们曾经创建过群聊,我们再把Name添加到集合中去
list.add(groupName+"&2");
arrayList.add(groupName);
ArrayAdapter<String> adapter = new ArrayAdapter<>(WelcomeActivity.this,R.layout.support_simple_spinner_dropdown_item,arrayList);
listViewOne.setAdapter(adapter);
}
//单聊
NIMClient.getService(UserService.class).fetchUserInfo(users)
.setCallback(new RequestCallback<List<NimUserInfo>>() {
@Override
public void onSuccess(List<NimUserInfo> nimUserInfos) {
//获得所有用户的名称
for (int i = 0; i < nimUserInfos.size(); i++) {
list.add(nimUserInfos.get(i).getName()+"&1");
arrayList.add(nimUserInfos.get(i).getName());
}
Toast.makeText(WelcomeActivity.this, "1111", Toast.LENGTH_SHORT).show();
//得到名称后,设置适配器
ArrayAdapter<String> adapter = new ArrayAdapter<>(WelcomeActivity.this,R.layout.support_simple_spinner_dropdown_item,arrayList);
listViewOne.setAdapter(adapter);
}
@Override
public void onFailed(int i) {
}
@Override
public void onException(Throwable throwable) {
}
});
listViewOne.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//点击listViewd的每一行时获得list集合中该下标的内容
String s = list.get(position);
//根据&分割
String[] split = s.split("&");
//判断split[i],如果为1,便是单聊,如果为2,便是群聊
if(split[1].equals("1")){
String name = users.get(position);
NimUIKit.startP2PSession(WelcomeActivity.this,name);
}
else {
NimUIKit.startTeamSession(WelcomeActivity.this, groupId);
}
}
});
}
}
WelcomeActivity的xml
<?xml version="1.0" encoding="utf-8"?>
<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"
android:orientation="vertical"
tools:context=".WelcomeActivity">
<Button
android:id="@+id/Btn_Two"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="退出登录"
android:textSize="20dp"/>
<ListView
android:id="@+id/List_One"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</LinearLayout>