Источник страницы комнаты Android ничего не загружаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Источник страницы комнаты Android ничего не загружает

Сообщение Anonymous »

Я пытаюсь получить информацию из своей базы данных, используя пакет Paging3, который находится в библиотеках Jetpack, и по какой-то причине я не смог заставить его работать, он вообще не работает, никаких ошибок не выдается, и я тоже все делал вручную, может кто-нибудь помочь мне решить проблему?
Моя комната Дао

Код: Выделить всё

@Dao
interface ContactDao {
@Insert
fun insertAll(vararg contacts: Contact)

@Query("SELECT * FROM contact WHERE id=:id")
fun getById(id: Int): Contact?

@Query("SELECT * FROM contact WHERE number=:number")
fun getByNumber(number: String): Contact?

@Query(
"""
SELECT
contact.id,
contact.name,
contact.number,
MAX(contact_message.message_time) AS latest_message_time,
COUNT(contact_message.id) as messages_count,
contact_message.message_body as latest_message_body
FROM
contact
INNER JOIN
contact_message
ON
contact_message.contact_id = contact.id
GROUP BY
contact.id
ORDER BY
latest_message_time DESC;
"""
)
fun getAll(): List

@Query(
"""
SELECT
contact.id,
contact.name,
contact.number,
MAX(contact_message.message_time) AS latest_message_time,
COUNT(contact_message.id) as messages_count,
contact_message.message_body as latest_message_body
FROM
contact
INNER JOIN
contact_message
ON
contact_message.contact_id = contact.id
GROUP BY
contact.id
ORDER BY
latest_message_time DESC;
"""
)
fun getAllWithPagination(): PagingSource
}
и функция ViewModel

Код: Выделить всё

class SomeClass {
@ExperimentalPagingApi
fun getAllContactsPager(): Flow
> {
return Pager(
config = PagingConfig(pageSize = 20),
) {
db.contactDao().getAllWithPagination()
}.flow.cachedIn(viewModelScope)

}
}
и мой код создания пользовательского интерфейса:

Код: Выделить всё

@OptIn(ExperimentalPagingApi::class)
@Composable
fun ContactsList(vm: SmsViewModel = viewModel()) {
val pager = vm.getAllContactsPager().collectAsLazyPagingItems()
LazyColumn(modifier = Modifier.fillMaxSize()) {
items(
count = pager.itemCount
) { index ->
val item = pager[index]
item?.let {
ContactBasicInfoCard(vm = vm, contactWithCount = item)
}
}
}
}
по какой-то причине не загружаются данные
Я пытался сделать все вручную, и это вообще не сработало

Подробнее здесь: https://stackoverflow.com/questions/792 ... -any-thing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»