如何在 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 获取刷新令牌

ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题

android开发怎么刷新 scrollview