Я пытаюсь выполнить вызов API, получить все данные, связанные с заказами, и показать их в списке. Я протестировал следующее, и они работают должным образом.
1 — Добавление статических данных в представление.
2 — Вызов API возвращает данные и правильно анализируется.
Единственное, чего не происходит, это когда я обновляю данные в адаптере с помощью
orderAdapter!!.notifyDataSetChanged(), он не обновляется данные.
class OrderHistoryActivity : AppCompatActivity() {
lateinit var recyclerView: RecyclerView
var orderAdapter: OrderAdapter? = null
var models: MutableList? = null
lateinit var prefs: Prefs
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_order_history)
recyclerView = findViewById(R.id.orderRecyclerView)
models = ArrayList()
prefs = Prefs(this@OrderHistoryActivity)
GlobalScope.launch(Dispatchers.Default) {
runCatching {
Log.d("FUNCTION", "API TO GET ORDERS INIT ${prefs.token} ${prefs.userId}")
try {
val response = withTimeout(REST_API_TIMEOUT) {
RetrofitClient(this@OrderHistoryActivity).getApi().getOrders(
prefs.token, prefs.userId,"get"
).execute().parseResult()
}
Log.d("FUNCTION", "API TO GET RESULTS -> RESPONSE ${Gson().toJson(response)} ")
response.lastReadDate = System.currentTimeMillis()
var i = 0
(models as ArrayList).clear() // CLEAR OLD LIST //
while (i < response.data.size) {
val data = response.data
val order_id=data.id
val order_status=data.status
val order_date=data.date
Log.d("FUNCTION", "API TO GET IND RESULT -> RESPONSE ${order_id} ${order_status}")
(models as ArrayList).add(OrderModel("${order_id}", "Nov 20, 2024", "${order_status}"))
i++
}
// UPDATE DATA //
orderAdapter!!.notifyDataSetChanged()
Log.d("FUNCTION", "API TO GET IND RESULT MODELS -> RESPONSE ${models}")
} catch (ex: RestApiException) {
var err = OnApiErrorEvent(ex.message ?: ex.toString())
Log.d("FUNCTION","rest exp")
Log.d("FUNCTIONwwr","${err}")
} catch (ex: Exception) {
var err = OnApiErrorEvent(ex.message ?: ex.toString())
} catch (ex: CancellationException) {
} finally {
launch(Dispatchers.Main) {
// viewModel.progress.set(false)
}
}
}
}
for (i in 0..7) {
(models as ArrayList).add(OrderModel("#14524$i", "Nov 3, 2022", "Completed"))
}
recyclerView.setLayoutManager(LinearLayoutManager(this@OrderHistoryActivity))
orderAdapter = OrderAdapter(this@OrderHistoryActivity, models)
recyclerView.setAdapter(orderAdapter)
Log.d("FUNCTION", "RESULT - > STATIC DATA")
}
Подробнее здесь: https://stackoverflow.com/questions/782 ... g-retrofit
Данные не обновляются в представлении переработчика после вызова API с использованием модификации ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение