【问题标题】:How to get last ListView state when coming back from Activity从 Activity 返回时如何获取最后一个 ListView 状态
【发布时间】:2020-10-05 10:51:15
【问题描述】:

我有一个自定义 ListView,其中有一些 TextView 和一些按钮。单击每个按钮都会打开一个新活动。
问题是,假设我当前正在查看第 15 个 ListView 项目并单击打开新活动的按钮。从活动返回时,ListView 会返回到第一项,但我希望它从我在开始新活动时离开的视图(在本例中为第 15 项)恢复。我该怎么做?

我是android开发新手,所以不知道用什么关键词搜索这个问题!
任何帮助表示赞赏:)

【问题讨论】:

    标签: android listview android-activity android-listview listviewitem


    【解决方案1】:

    试试listView.setSelection(15);listView.smoothScrollToPosition(15);。在去活动15之前保存它,所以当你回到MainActivity时,只需使用保存的参数调用这个函数。

    【讨论】:

      【解决方案2】:

      最好的办法是手动恢复整个状态:

      class MainActivity : AppCompatActivity() {
          companion object {
              private const val LIST_STATE_ARG = "SomeCustomString"
          }
      
          private lateinit var list: ListView
      
          ...
      
          override fun onSaveInstanceState(outState: Bundle) {
              super.onSaveInstanceState(outState)
              outState.putParcelable(LIST_STATE_ARG, list.onSaveInstanceState())
          }
      
          override fun onRestoreInstanceState(savedInstanceState: Bundle) {
              super.onRestoreInstanceState(savedInstanceState)
              list.onRestoreInstanceState(savedInstanceState.getParcelable(LIST_STATE_ARG))
          }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-06
        • 2019-05-04
        • 2013-04-13
        • 2018-11-24
        • 1970-01-01
        • 1970-01-01
        • 2017-12-22
        • 1970-01-01
        相关资源
        最近更新 更多