首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@Composable调用只能在volley内@Composable函数的上下文中发生

@Composable调用只能在volley内@Composable函数的上下文中发生
EN

Stack Overflow用户
提问于 2021-08-20 13:29:05
回答 1查看 486关注 0票数 0

我试图通过Volley连接获取api数据,并将其赋值到文本可组合中,但它没有工作并显示错误:

@Composable调用只能在@Composable函数的上下文中发生

我知道有一个类似的问题,但它并没有解决我的问题

如何解决这个错误?因为我是Jetpack的新手

代码:

代码语言:javascript
复制
@Composable
fun getJSON() {
val context = LocalContext.current
val queue = Volley.newRequestQueue(context)
val url = "https://adeega.xisaabso.online/android.php"



val stringRequest = StringRequest(Request.Method.POST, url,
{ response ->

  val jsonObject = JSONObject(response)
  val TotalMoney = jsonObject.get("Total")

  Text(text = "$TotalMoney")

},
{
  Toast.makeText(context, "Welcome to Error", Toast.LENGTH_SHORT).show()
})
queue.add(stringRequest)

}

SetContent

代码语言:javascript
复制
setContent {
  First_JetpackCompose_appTheme {
    // A surface container using the 'background' color from the theme
    Surface(color = MaterialTheme.colors.background) {

      getJSON()

    } // END Surface
  }
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-20 19:34:34

不能response块中使用Text(text = "$TotalMoney")

使用ViewModel或只使用以下内容:

代码语言:javascript
复制
var totalMoney by remember { mutableStateOf("") }

Text(text =  totalMoney)

val stringRequest = StringRequest(Request.Method.POST, url,
{ response ->

  /* Your code */
  totalMoney = ....

},
{
  Toast.makeText(context, "Welcome to Error", Toast.LENGTH_SHORT).show()
})
queue.add(stringRequest)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68863059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档