Android - 在 Spinner 选择后将焦点设置在 EditText 上

2024-01-19

我的屏幕上显示以下项目:

EditText Forename
Spinner gender selection (Male | Female)
EditText Email

首次启动应用程序时,我希望将焦点设置在 Forename EditText 上。然后在微调器中选择“男性”或“女性”后, 我希望将焦点设置在位于微调器下方的电子邮件 EditText 上。

我用过setOnItemSelectedListener设置requestFocus在电子邮件 EditText 上,但问题是它会自动将焦点设置在 每当我启动应用程序时都会使用此 EditText。 发生这种情况是因为默认情况下,微调器显示第一个选择,在本例中是“男性”,因此它认为 已做出选择并将焦点设置在“电子邮件”字段上。

我不介意默认情况下已在微调器中选择的第一个选择,但如果我可以以某种方式覆盖requestFocus要设置在 最初命名 EditText 会很棒。

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

   <EditText
        android:id="@+id/ForenameForm"
        android:layout_width="285dp"
        android:layout_height="65dp"
        android:hint="@string/forenameHint"
        android:lines="1"
        android:singleLine="true"
        android:textSize="20sp" >
    </EditText>


   <Spinner  
        android:id="@+id/SpinnerGender" 
        android:spinnerMode="dialog"
        android:textSize="30sp" 
        android:layout_width="285dp"
        android:layout_height="60dp"
        android:prompt="@string/spinnerGender"  
        android:entries="@array/genderList">

    </Spinner>

   <EditText
        android:id="@+id/EmailForm"
        android:layout_width="285dp"
        android:layout_height="65dp"
        android:hint="@string/emailHint"
        android:lines="1"
        android:singleLine="true"
        android:textSize="20sp" >
    </EditText>

</LinearLayout>

活动类别:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText forename=(EditText)findViewById(R.id.ForenameForm);
        forename.requestFocus();

        final EditText email=(EditText)findViewById(R.id.EmailForm);

        Spinner spinner=(Spinner)findViewById(R.id.SpinnerGender);
        spinner.setFocusable(true);
        spinner.setFocusableInTouchMode(true);   


        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                email.requestFocus();               
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {

            }               
        });  
    }

这个解决方案怎么样。

define a boolean flag and set it default false.

in oncreate set the focus of forname

in setOnItemSelectedListener 
     if flag is false then set flag true
     else focus email 

所以你的代码会像

boolean flag = false;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final EditText forename=(EditText)findViewById(R.id.ForenameForm);
        forename.requestFocus();

        final EditText email=(EditText)findViewById(R.id.EmailForm);

        Spinner spinner=(Spinner)findViewById(R.id.SpinnerGender);
        spinner.setFocusable(true);
        spinner.setFocusableInTouchMode(true);   


        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
        {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
              // changes here
                if(flag == false)
                    flag = true;
                else 
                    email.requestFocus();               
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {

            }               
        });  
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 在 Spinner 选择后将焦点设置在 EditText 上 的相关文章

  • Android SoundPool 堆限制

    我正在使用 SoundPool 加载多个声音剪辑并播放它们 据我所知 它的功能 100 正确 但在 load 调用期间 我的日志中充斥着以下内容 06 09 11 30 26 110 ERROR AudioCache 23363 Heap
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 共同的偏好不断消失

    我正在使用共享首选项来存储我的应用程序的登录凭据 除了一个用户之外 一切正常 一段时间后 共享偏好似乎会以某种方式重置或清除 我已针对该用户调整了我的应用程序 使其不再清除他的共享偏好设置 这样我就可以确定这不是我的应用程序的错 但即使在这
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • RxJava、Proguard 和 sun.misc.Unsafe

    我有以下问题RxJava 1 1 0 使用时Proguard 我没有更改 RxJava 版本或其 pro文件 但更新后OkHttp我无法编译使用Proguard因为我有关于sun misc Unsafe不在场 rxJava pro keep
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 已经使用 AsyncTask doInBackground 但新数据未显示

    我使用 AsyncTask 创建一个聊天室来接收消息 因此它总是检查即将到来的消息并将其显示给客户端 但代码似乎无法按我希望的方式工作 在客户端只显示所有旧数据 新数据不显示 因为当我尝试从服务器发送消息时 新数据没有显示在客户端中 我对这
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 材质设计图标颜色

    应该是哪种颜色 暗 材质图标 在官方文档上 https www google com design spec style icons html icons system icons https www google com design s
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 当手机旋转(方向改变)时如何最好地重新创建标记/折线

    背景 开发一个使用 Android Google Map v2 的本机 Android 应用程序 使用android support v4 app FragmentActivity 在 Android v2 2 上运行 客观的 在更改手机方
  • SharedFlow 和 StateFlow 的主要区别

    两者有什么区别共享流 and 状态流 以及如何使用这些MVI建筑学 使用简单更好吗Flow或者这些作为状态和事件 Flow 是冷的 意味着它仅在收集数据时才发出数据 另外Flow不能保存数据 可以把它看成是水在里面流动的管道 Flow中的数
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access
  • 在webview android中加载本地html文件

    我正在尝试在 android 的 webview 中加载 html 文件的内容 但是 它给了我 网页不可用错误 如果我尝试使用谷歌或雅虎等网站 它们就会起作用 html文件位于src gt main gt assests gt index
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想

随机推荐

  • 最好的异常处理策略应该是什么

    我正在开发用户从 UI 调用方法的应用程序 在此我从业务类调用一个方法 该方法调用另一个方法 用户界面 gt 方法1 gt 方法2 gt 方法3 如果任何方法中发生任何异常 我想向用户显示错误消息 我应该直接向调用者方法抛出异常吗 在 UI
  • Discord JS - 如何对同一个嵌入多次做出反应?

    我只拿到了第一个 钱袋子 表情符号对频道中的最新消息做出反应 这是机器人发送的嵌入 但是 我希望机器人对新嵌入做出反应 钱袋子 and ticket 表情符号 到目前为止它会与 钱袋子 表情符号 但是 当它尝试与 ticket 表情符号 如
  • Angular 6 Firebase 快照返回未定义

    我正在将对象上传到我的数据库 然后尝试检索所有项目 在第二步中我遇到错误 我的对象类 export class Data key string name string address string address2 string pscod
  • Sublime Text 2:如何在不移动光标的情况下向上/向下翻页

    我使用的是 OS X 10 8 4 ST2 当我使用 Home 和 End 键时 视口移动并且光标保持不变 这是标准的 Mac 行为 也是我所期望的 但是 当我使用 Page Up pageup pgup 和 Page Down paged
  • Python3 shebang 线未按预期工作

    我在 Solaris 环境中运行 Python 脚本时遇到以下问题 看来我在 shebang 线上做了一些不正确的事情 但我无法判断这是 Python 3 问题还是命令行问题 但我怀疑它与 shebang 行有某种关系 因为当我在命令行上显
  • “砰”或“!”是什么意思?在 git 命令之前?

    正如您从这段摘录中看到的 有一个 在 git 命令之前 重点是什么 alias commitx git add git commit https stackoverflow com a 8956546 1354543 https stack
  • 如何每 10 秒发出一次 Ajax 请求(长轮询除外)?

    我尝试使用以下命令每 10 秒从服务器请求一个 json 对象 setInterval function ajax url success function data do stuff with data 10000 但这不是很有效 我了解
  • 使用 WordNet 确定两个文本之间的语义相似度?

    如何使用 WordNet 确定 python 中两个文本之间的语义相似度 明显的预处理是删除停用词和词干 但是然后呢 我能想到的唯一方法是计算两个文本中每个单词之间的 WordNet 路径距离 这是一元语法的标准 但这些都是大型 400 个
  • 无法解析符号“FusedLocationProviderClient”

    我有一个错误无法解析符号 FusedLocationProviderClient 声明时 private FusedLocationProviderClient mFusedLocationClient 这里也问同样的问题无法解析符号 Fu
  • sqlalchemy 按计数列过滤

    我有一个用户查询 它按每个用户拥有的订单数量 ordersCount 进行过滤 User query filter ordersCount gt 2 如果我运行它 它会显示 where 子句 中的未知列 ordersCount 根据我的经验
  • 捕获文本框滚动事件?

    Textbox or richtextbox 我唯一想要的就是当滚动条移动时触发一个函数 我已经找到了GetScrollPos and SetScrollPos 我想过定期检查滚动条位置 但必须有更好的方法 那么 使用 WinForms 更
  • Spring MVC 和 Velocity:模板结构

    我想实现这种模板功能 有一个模板 定义完整 x html 网页的页眉 页脚和公共部分 当返回字符串时 Controller它将定义包含到模板特定部分的视图 像这样 控制器 RequestMapping value method Reques
  • EF Core 迁移错误:“无法创建‘ApplicationContext’类型的对象”

    我尝试使用 EF Core 进行迁移 但收到错误 如何修复此错误 PM gt add migration ini 无法创建 ApplicationContext 类型的对象 添加一个 IDesignTimeDbContextFactory
  • 在iPhone中使用带有userid参数的base64 haxcode将图像上传到服务器

    我正在使用这段代码 但问题是它在 nsdata 转换块中对 Haxcode 进行编码 我想发送相同的代码 我用 userid 得到的代码是固定整数 请帮忙 NSData imageData NSData dataWithData UIIma
  • 表达式树 - 不必要的转换为 int32

    在处理字节和短整型时 表达式树似乎构建了不必要的转换 它们将两侧 例如在二进制表达式中 转换为 int32 这是我见过的一些 Linq 提供程序中的一个问题 每个提供程序都必须剥离这个冗余层才能得到原始表达式 NHibernate 不会删除
  • Spark 结构化流内存流 + 行 + 编码器问题

    我正在尝试使用 Spark 结构化流在本地计算机上运行一些测试 在批处理模式下 这是我正在处理的行 val recordSchema StructType List StructField Record MapType StringType
  • 如何从生成的 pom 中排除具有显式 URL 的库依赖项?

    我正在移动Scala 迁移 http code google com p scala migrations 项目从 ant ivy 到 sbt 它可以选择使用 log4jdbc 作为不存在于的库依赖项任何公共 Maven 存储库 http
  • 您的日志记录理念是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 As 杰夫 阿特伍德问道 https blog stackoverflow com 2008 09 podcast 20 你的日志哲学是什么 所
  • sql select 的列名称如下

    我有一个包含列名称的表a1 a2 b1 b2 我如何选择所有具有列名称的列 例如a 这将为您提供列表 select from information schema columns where table name table1 and co
  • Android - 在 Spinner 选择后将焦点设置在 EditText 上

    我的屏幕上显示以下项目 EditText Forename Spinner gender selection Male Female EditText Email 首次启动应用程序时 我希望将焦点设置在 Forename EditText