当前位置: 首页 > 知识库问答 >
问题:

Android通过在AlertDialog内的SearchView中按“完成”来关闭键盘

顾兴昌
2023-03-14

从一个片段,我在AlertDialog中使用SearchView,我希望键盘的完成按钮来关闭键盘。出于某种原因,它不起作用。

这是我的AlertDialog”

val mBuilder =
        AlertDialog.Builder(context!!, Theme_DeviceDefault_Light_NoActionBar_Fullscreen)
val mView = View.inflate(activity!!, R.layout.list_search, null)
mBuilder.setView(mView)
val dialog = mBuilder.create()
val searchView = view.findViewById<SearchView>(R.id.search_view)
dialog.show()

searchView.setImeOptions(EditorInfo.IME_ACTION_DONE)

searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
    override fun onQueryTextChange(newText: String): Boolean {
        adapterWithSearch.filter(newText)
        return true
    }

    override fun onQueryTextSubmit(query: String): Boolean {
        adapterWithSearch.filter(query)
        return true
    }
})

这是我的搜索视图:

<SearchView
    android:id="@+id/searchView"
    style="@style/AppTheme.Searches"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:actionViewClass="android.support.v7.widget.SearchView"
    android:iconifiedByDefault="false"
    android:imeOptions="actionDone"
    android:inputType="text"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:clickable="true" />

我希望键盘被解雇,而不是警报对话框。有人知道为什么键盘没有被淘汰吗?

共有1个答案

袁帅
2023-03-14

也许我没有正确地看到你正在尝试做什么,但我看不出你在试图关闭键盘。对于此操作,您有两种选择:

试着看看这个希望有帮助

使用静态编程语言关闭/隐藏Android软键盘

这里有不同的方法来消除键盘。我看不出这个问题更复杂。

我还发现了这个

 类似资料:
  • 我想在进入“活动”和用户搜索并按下searchview上的“X”后关闭键盘。我该怎么做?

  • 我有一个带有searchView图标的操作栏。我点击searchView图标,出现softInputMode键盘,我的ListView出现用于搜索。但是,当您关闭searchView时,searchView会关闭,但我无法让ListView在searchView关闭时也关闭。 下面是我在activity_maps中的ListView代码。xml 地图ctivity.java 所以最初当MapsAc

  • 本文向大家介绍Android中阻止AlertDialog关闭实例代码,包括了Android中阻止AlertDialog关闭实例代码的使用技巧和注意事项,需要的朋友参考一下 Android如何关闭AlertDialog.Builder对话框呢?AlertDialog.Builder对话框没有类似finish()或者dismiss()这样的方法。 但是它的父类AlertDialog有dismiss方法

  • 想改进这个问题吗 通过编辑这篇文章,更新问题,以便用事实和引文来回答。 我调用一个方法,该方法为列表中的每个元素返回一次未来 返回的方法是库代码,我无法控制该代码的运行方式,我所拥有的只是。 我想等待所有完成(成功或失败),然后再继续。 有没有比这更好的方法: 对于好奇的人: 与这个等待未来列表的答案不同,我无法控制创建未来的代码。

  • 编辑问题以包括所需行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。 将Android Studio更新到后,我收到以下错误: 我已经更新了所有的gradle依赖项。 对此有什么解决办法吗?

  • 嗨,在用pygame开发游戏时,有一个问题其实并不重要,但它一直困扰着我一段时间。 所以上面是一个工作代码,我相信 同样有效。 然而,当我只是尝试类似“event.key==pyplay。K_RIGHT:",python给我一个错误,说没有属性'key'。虽然我知道选择以上2个代码会更合理,而不仅仅是“event.key==pyplay。K_RIGHT:",我不知道为什么pyplay会说事件没有属