Обновить текст текстового поля KotlinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Обновить текст текстового поля Kotlin

Сообщение Anonymous »

Я делаю асинхронный запрос, и после его завершения как мне обновить status_text в нижней части этого примера?

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

class MainActivity : ComponentActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

CoroutineScope(Dispatchers.IO).launch {
val response = async {

try {
val url = URL(getString(R.string.api_endpoint))
val urlConnection = url.openConnection()
val inputStream = urlConnection.getInputStream()
val reader = BufferedReader(InputStreamReader(inputStream))

val stringBuilder = StringBuilder()
var line: String?
while (reader.readLine().also { line = it } != null) {
stringBuilder.append(line)

}

reader.close()
inputStream.close()

val jsonString = stringBuilder.toString()

val gson = Gson()
val data = gson.fromJson(jsonString, Pondus::class.java)

data
} catch (e: Exception) {
Log.d("DEBUG exception", e.toString())
}

}.await()

withContext(Dispatchers.Main) {
setContent {
PondusTheme {
InputValues(response)
}
}
}
}
}

@Composable
fun InputValues(result: Any) {

var statusText by remember { mutableStateOf("") }

Column {
Row {
TextField(
value = statusText,
onValueChange = { statusText = it },
)
}
Row {
MakeButton()
}
}
}

@Composable
private fun MakeButton() {

Button(onClick = { sendValue(23.4F) }) {
Text(text = "Some text goes here")
}
}

private fun sendValue(value: Float): Boolean {

CoroutineScope(Dispatchers.IO).launch {
val response = async {
// Perform network operation here

val client = HttpClient()
val response: HttpResponse =
client.post(getString(R.string.api_endpoint_2)) {
setBody("Body content")
}
}.await()

withContext(Dispatchers.Main) {

// Update status_text here 

Подробнее здесь: [url]https://stackoverflow.com/questions/79012343/update-the-text-of-a-kotlin-text-field[/url]
Ответить

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

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

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

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

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