【问题标题】:function like onBackPressed() supportActionBar() import error after migrating to androidx迁移到 androidx 后类似 onBackPressed() supportActionBar() 导入错误的功能
【发布时间】:2018-09-27 05:35:26
【问题描述】:

android.support 迁移到androidx 后,onBackPressed()setSupportActionBar 等默认功能已停止工作。 如何解决这个错误?

【问题讨论】:

  • 你能给我们看看代码吗?
  • @ZaidMirza 我已经添加了代码
  • 粘贴 BaseActivity 中的代码。
  • 我也遇到同样的错误:(
  • @ErnestZamelczyk 我已经粘贴了 baseActivity

标签: java android android-studio kotlin androidx


【解决方案1】:

Dagger 2.17 与 Androidx 不兼容。使用 2.16

更改版本后执行干净构建,如果仍然无法正常工作,则从File 菜单执行Invalidate Caches / Restart

【讨论】:

    【解决方案2】:

    好的。问题出在匕首版本 2.14 上。其中使用support 版本的AppCompatActivity 而不是androidx。升级到最新版本的匕首将解决这个问题

    【讨论】:

      【解决方案3】:

      我们同时使用这两个函数将发布代码和一个花哨的 onBackPressed 乐趣

          override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContentView(R.layout.activity_person)
          supportActionBar?.setDisplayHomeAsUpEnabled(true)
      
          initViews()
      
      }
      

      这里是选项选择代码,我们这里也有一个菜单

          override fun onOptionsItemSelected(item: MenuItem?): Boolean {
          if (item != null) {
              when (item.itemId) {
                  R.id.addNote -> {
                      val intent = Intent(this, MainActivity::class.java)
                      intent.putExtra("FROM","N")// ADD NEW NOTE
                      startActivity(intent)
                  }
              }
              // CODE below manages HOME Button
              val id = item.itemId
              if (id == android.R.id.home) {
                  val intent = Intent(this, MainActivity::class.java)
                  intent.putExtra("FROM","N")// ADD NEW NOTE
                  startActivity(intent)
              }
          }
          return super.onOptionsItemSelected(item)
      }
      

      现在用 GLOBAL TOAST 看上 onBackPressed

          override fun onBackPressed(){
          theTOAST()
      }
      
      fun theTOAST(){
          val toast = Toast.makeText(this@PersonActivity, "USE  <-- to go back",Toast.LENGTH_LONG)
          val view = toast.view
          view.setBackgroundColor(Color.TRANSPARENT)
          val text = view.findViewById(android.R.id.message) as TextView
          text.setTextColor(Color.BLUE)
          text.textSize = (20F)
          toast.show()
      }
      

      要使 Toast 全球化,您需要在顶层使用 var toastSTR = ""
      然后将该 var 放入字符串所在的 Toast 中并设置值并调用 fun wrom 任何您想要自定义 toast 的乐趣

      【讨论】:

      • 请也发布您的导入
      猜你喜欢
      • 2019-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多