【问题标题】:Kotlin - Clear Button listener for google's Place Autocomplete API onClick not calledKotlin - 未调用 google 的 Place Autocomplete API onClick 的清除按钮侦听器
【发布时间】:2019-07-23 22:44:42
【问题描述】:

我正在尝试为来自 google 的 Place Autocomplete API 的清除按钮创建一个侦听器。我在片段的onViewCreated 方法中调用了我的clearButton() 方法

clearButton()

placeAutocompleteFragment?.view?.findViewById<View>(R.id.place_autocomplete_clear_button)
    ?.setOnClickListener {
        View.OnClickListener {
            Log.d(TAG, "Cleared")
            it?.findViewById<EditText>(R.id.place_autocomplete_search_input)?.setText("")
            it?.visibility = View.GONE
        }
    }

现在,当我单击清除按钮图标时,文本不会被删除,没有任何反应。我仍然可以输入一个新的位置,但我无法清除它。我的Log.d 也没有显示出来。

【问题讨论】:

    标签: android kotlin google-places-api onclicklistener type-inference


    【解决方案1】:

    想通了。我把方法调用设置错了。

    它应该是这样的:

    private fun clearButton() {
        placeAutocompleteFragment?.view?.findViewById<View>(R.id.place_autocomplete_clear_button)?.setOnClickListener {
            Log.d(TAG, "Cleared Button Clicked")
            it.visibility = View.GONE
            //do something
        }
    }
    

    【讨论】:

      【解决方案2】:

      我现在这台机器上没有 android studio 可以尝试,但我想你可以做类似的事情

      place_autocomplete_clear_button.onClick { place_autocomplete_search_input.text = "" }
      

      其中place_autocomplete_clear_button 可以是静态导入,onClick 可能来自anko

      【讨论】:

      • 我不熟悉anko 那是什么?
      • github.com/Kotlin/anko kotlin 团队开发的超级强大的库来帮助你在android中
      • place_autocomplete_clear_button 虽然来自PlaceAutocompleteFragment 的源代码
      • 那么你会想要保留按钮的引用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 2016-07-07
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2011-11-27
      相关资源
      最近更新 更多