关联用户关键字搜索

This commit is contained in:
2026-05-23 09:02:03 +08:00
parent b16ced1c18
commit 2c88a9eb7e
2 changed files with 41 additions and 14 deletions

View File

@@ -2,6 +2,8 @@ package com.example.defenseapplication.liveVideo
import android.content.Intent
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.util.TypedValue
import android.view.View
import android.widget.Toast
@@ -30,6 +32,7 @@ class LinkedUserActivity : AppCompatActivity() {
private lateinit var binding: LinkedUserActivityBinding
private lateinit var adapter: LinkedUserAdapter
private val fullUserList = mutableListOf<LinkedUser>()
private val userList = mutableListOf<LinkedUser>()
private var mode: Int = MODE_SETTINGS
@@ -317,9 +320,9 @@ class LinkedUserActivity : AppCompatActivity() {
}
private fun updateDeviceUserList(deviceUserList: List<DeviceUserBean>) {
userList.clear()
fullUserList.clear()
deviceUserList.forEach { deviceUser ->
userList.add(
fullUserList.add(
LinkedUser(
userId = deviceUser.userId ?: "",
name = deviceUser.nickName ?: "未知用户",
@@ -329,13 +332,13 @@ class LinkedUserActivity : AppCompatActivity() {
)
)
}
adapter.submitList(userList)
filterUsers(binding.etSearch.text?.toString() ?: "")
}
private fun updateFamilyMembersList(familyMembersList: List<FamilyMembersBean>) {
userList.clear()
fullUserList.clear()
familyMembersList.forEach { member ->
userList.add(
fullUserList.add(
LinkedUser(
userId = member.userId ?: "",
name = member.nickName ?: member.parentName ?: "未知用户",
@@ -345,6 +348,20 @@ class LinkedUserActivity : AppCompatActivity() {
)
)
}
filterUsers(binding.etSearch.text?.toString() ?: "")
}
private fun filterUsers(keyword: String) {
userList.clear()
if (keyword.isEmpty()) {
userList.addAll(fullUserList)
} else {
val lowerKeyword = keyword.lowercase()
fullUserList.filter {
it.name.lowercase().contains(lowerKeyword) ||
it.phone.contains(keyword)
}.forEach { userList.add(it) }
}
adapter.submitList(userList)
}
@@ -353,9 +370,13 @@ class LinkedUserActivity : AppCompatActivity() {
finish()
}
binding.searchLayout.setOnClickListener {
binding.etSearch.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
override fun afterTextChanged(s: Editable?) {
filterUsers(s?.toString() ?: "")
}
})
binding.btnAddLinkedUser.setOnClickListener {
val intent = Intent(this, AddLinkedUserActivity::class.java)

View File

@@ -58,12 +58,18 @@
android:src="@drawable/search"
android:layout_marginRight="8dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/search_preset_text"
android:textColor="@color/gray"
android:textSize="14sp"/>
<EditText
android:id="@+id/etSearch"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="@null"
android:hint="@string/search_preset_text"
android:textColorHint="@color/gray"
android:textColor="@color/black"
android:textSize="14sp"
android:inputType="text"
android:imeOptions="actionSearch"
android:singleLine="true"/>
</LinearLayout>
</LinearLayout>
<!-- 列表区域 -->