如何在 Kotlin 中刷新 ScrollView/LinearLayout
Posted
技术标签:
【中文标题】如何在 Kotlin 中刷新 ScrollView/LinearLayout【英文标题】:How to refresh ScrollView/LinearLayout in Kotlin 【发布时间】:2021-12-18 01:45:25 【问题描述】:我正在尝试解决我的问题。当我制作一些基本的天气应用程序时。当我打开新活动时,我可以将城市添加到收藏列表。问题是当我按下后退按钮时,我需要刷新滚动视图,但我不知道如何。我试过 onBackPressed 但它不起作用。
这是部分代码
fun showWeather(searchedCity: String?)
var city: CityObject
if (searchedCity.isNullOrEmpty())
Toast.makeText(applicationContext, "NEED TO WRITE CITY!", Toast.LENGTH_LONG).show()
// Need have threat cause internet
thread = Thread
// getting data
var jsonData = jsonParser.getJsonData("$searchedCity")
if (!jsonData.isNullOrEmpty())
//parsing data
city = jsonParser.parseJsonData(jsonData)!!
// for start another activity
startActivity(city)
thread.start()
textInputEditText.text?.clear()
//showing weather
fun startActivity(city: CityObject)
runOnUiThread
val intent = Intent(this, WeatherActivity::class.java)
intent.putExtra("CITY_OBJECT", city)
startActivity(intent)
// making favourite cities buttons
fun getFavouriteCities()
linInScroll.removeAllViews()
linInScroll.setOrientation(LinearLayout.VERTICAL);
for (cityName in DB.getData())
val button = Button(this)
button.setText("$cityName")
button.setTextSize(1, 20F)
button.setOnClickListener
showWeather("$cityName")
linInScroll.addView(button)
最喜欢的城市列表
感谢您的帮助
【问题讨论】:
您好,您可以尝试在 onResume() 方法中调用 getFavouriteCities()。 太棒了!有用!非常感谢你! 如果onResume
对您有好处,那很酷(请记住,每次应用程序进入视图时,当显示屏旋转等时都会调用它)但是处理后退按钮的正确方法是添加OnBackPressedCallback
:developer.android.com/guide/navigation/navigation-custom-back
【参考方案1】:
每次您的活动进入前台时,都会调用onResume
方法。
override fun onResume()
super.onResume()
getFavouriteCities()
您可能还想查看其他生命周期事件。
请查看android activity lifecycle 以获得更好的理解。
【讨论】:
以上是关于如何在 Kotlin 中刷新 ScrollView/LinearLayout的主要内容,如果未能解决你的问题,请参考以下文章
SCrollView嵌套GridView,ScrollView如何实现上啦加载下拉刷新???
android解决ScrollView嵌套ListView不能下拉刷新
RefreshControl 数据重复每次在 React Native 中拉动以刷新 ScrollView
如何从 Firebase.auth.currentUser Android Kotlin 获取刷新令牌