📌  相关文章
📜  如何处理 Android 中单击操作按钮时的 IME 选项?

📅  最后修改于: 2022-05-13 01:54:28.377000             🧑  作者: Mango

如何处理 Android 中单击操作按钮时的 IME 选项?

我们经常观察到当我们尝试在可编辑字段中输入输入时会弹出一个键盘。这些输入通常被应用程序接受,以执行特定的功能并显示所需的结果。我们可以在日常使用的大多数应用程序中看到的最常见的可编辑字段之一是SearchBar

YouTube 搜索查询结果

调用键盘时,您会在底部看到一个带有放大镜图标的按钮。这让用户假设单击此按钮将帮助他们搜索查询。但是,此应用程序的开发人员已明确设置放大镜图标,默认情况下可能是其他内容。这可以通过使用IME 选项明确指定所需的图标类型来完成。要了解可用图标列表以及如何更改它们,请参阅以下文章。在 Android 中输入 EditText 时调用键盘中的搜索按钮。在本文中,我们将向您展示如何处理这些按钮上的点击事件。

分步实施

第 1 步:创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。我们在Kotlin 中演示了该应用程序,因此请确保在创建新项目时选择 Kotlin 作为主要语言。

步骤 2:使用 activity_main.xml 文件



导航到app > res > layout > activity_main.xml并将以下代码添加到该文件中。下面是activity_main.xml文件的代码。

XML


  
    
  


Kotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.inputmethod.EditorInfo
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring the EditText from the layout file
        val myEditText = findViewById(R.id.et1)
          
        // Calling the doSomething function
        doSomething(myEditText)
    }
  
      
    private fun doSomething(search: EditText){
        search.setOnEditorActionListener(TextView.OnEditorActionListener{ _, actionId, _ ->
            
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                  
                // Do something of your interest.
                // We in this examples created the following Toasts
                if(search.text.toString() == "geeksforgeeks"){
                    Toast.makeText(applicationContext, "Welcome to GFG", Toast.LENGTH_SHORT).show()
                } else {
                    Toast.makeText(applicationContext, "Invalid Input", Toast.LENGTH_SHORT).show()
                }
  
                return@OnEditorActionListener true
            }
            false
        })
    }
}


步骤 3:使用MainActivity.kt 文件

转到MainActivity.kt文件并参考以下代码。下面是MainActivity.kt文件的代码。代码中添加了注释以更详细地理解代码。

科特林

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.inputmethod.EditorInfo
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Declaring the EditText from the layout file
        val myEditText = findViewById(R.id.et1)
          
        // Calling the doSomething function
        doSomething(myEditText)
    }
  
      
    private fun doSomething(search: EditText){
        search.setOnEditorActionListener(TextView.OnEditorActionListener{ _, actionId, _ ->
            
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                  
                // Do something of your interest.
                // We in this examples created the following Toasts
                if(search.text.toString() == "geeksforgeeks"){
                    Toast.makeText(applicationContext, "Welcome to GFG", Toast.LENGTH_SHORT).show()
                } else {
                    Toast.makeText(applicationContext, "Invalid Input", Toast.LENGTH_SHORT).show()
                }
  
                return@OnEditorActionListener true
            }
            false
        })
    }
}

所以基本上,在函数doSomething 中,您可以在外部 if 条件中观察IME_ACTION_DONE 。这是因为当我们通过按下 EditText 调用键盘时,我们看到了 Done 按钮。这是当在布局中的编辑文本的属性中未设置 IME 选项或者是默认条件时。但是,如果您将其设置为搜索、前往等,那么您可能希望参考以下内容来使应用程序正常工作。用。。。来代替:

输入:

单击 EditText 并键入一些内容。现在按下底部的完成按钮并观察是否出现 Toast。同样,输入“geeksforgeeks”并观察 Toast。

输出:

您可以看到我们针对不同的输入观察到不同的 Toast。这表明我们的函数以 Toast 的形式正确响应了键盘操作按钮(完成按钮)。

想要一个更快节奏和更具竞争力的环境来学习 Android 的基础知识吗?
单击此处前往由我们的专家精心策划的指南,旨在让您立即做好行业准备!