为什么微调器中的 onNothingSelected 没有被调用?

2023-12-28

我有一个 Android Spinner,当用户在显示 Spinner 的选择面板时按“后退键”时,我想监听该事件。我已经实现了 OnItemSelectedListener ,但按后退键时未调用 onNothingSelected(AdapterView arg0) 。

我只想在用户选择任何内容(或选择面板消失)时监听事件。

有正确的方法吗?

Thanks!


 Spinner s1 = (Spinner) findViewById(R.id.spinner1);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.colors, android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    s1.setAdapter(adapter);
    s1.setOnItemSelectedListener(
            new OnItemSelectedListener() {
                public void onItemSelected(
                        AdapterView<?> parent, View view, int position, long id) {
                    showToast("Spinner1: position=" + position + " id=" + id);
                }

                public void onNothingSelected(AdapterView<?> parent) {
                    showToast("Spinner1: unselected");
                }
            });

这是Android 2.2 SDK中的示例,当选择面板消失时,它也不会显示“Spinner1:未选择”。


如果不延长时间,您似乎将无法做您想做的事情Spinner班级。看起来Spinner没有注册OnCancelListenerAlertDialog它构建用于显示项目。

代码来自Spinner.java http://android.git.kernel.org/?p=platform/frameworks/base.git;a=blob;f=core/java/android/widget/Spinner.java:

  @Override
    public boolean performClick() {
        boolean handled = super.performClick();

        if (!handled) {
            handled = true;
            Context context = getContext();

            final DropDownAdapter adapter = new DropDownAdapter(getAdapter());

            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            if (mPrompt != null) {
                builder.setTitle(mPrompt);
            }
            mPopup = builder.setSingleChoiceItems(adapter, getSelectedItemPosition(), this).show();
        }

        return handled;
    }

    public void onClick(DialogInterface dialog, int which) {
        setSelection(which);
        dialog.dismiss();
        mPopup = null;
    }

Also, setSelection仅当单击对话框中的项目时才调用。当用户按下后退按钮时,不会调用此函数,因为这是一个OnCancel event.

延伸Spinner会有点痛苦,因为你必须将所有内容复制回AdapterView从 android 源代码进入您的源代码,因为实现所需的各种成员字段仅在包级别公开。

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

为什么微调器中的 onNothingSelected 没有被调用? 的相关文章

  • 如何从我的班级访问活动 UI?

    我有一个活动创建我的类的对象实例 file MyActivity java public class MyActivity extends Activity TextView myView TextView findViewById R i
  • 围绕二维坐标系中的特定点缩放

    Below is an image my coordinate system 我想做的是 我想开始围绕画布中的特定点进行缩放 缩放工作正常 但我的问题是我不知道如何计算缩放时移动画布的量 请注意 我我没有使用canvas scale 我只是
  • 在 Android 上使用 MediaPlayer 流式传输经过身份验证的视频

    我正在尝试从具有基本身份验证的 SharePoint 服务器 URL 流式传输和播放视频 用户名密码 在我的 Android 设备中browser Media Player VideoView但我得到了 错误 sorry this vide
  • 整个应用程序中的全局“搜索功能”

    在我的整个应用程序中 我希望搜索按钮执行单独的操作Activity 即 当我按下搜索按钮时 从应用程序中的任何位置调用一个单独的活动 有什么方法可以代替定义onSearchRequested 在每项活动中 我只是在一个地方配置它 例如Man
  • 如何从 Cursor 获取行 ID

    如何从游标获取行 ID 我不认为 Cursor 直接暴露了这一点 SQLiteDatabase insert 返回新插入行的行 ID 或者在 Android 中 惯例是有一个名为 id 包含表的主自动增量键 所以cursor getLong
  • Camera2设置预览(View)并获取预览回调

    我想从 Camera2 获取预览以及用于处理帧的 byte 回调 mImageReader ImageReader newInstance largest getWidth largest getHeight ImageFormat RAW
  • 对齐卡片视图中的项目

    我希望我的卡片如下所示 我保持这样的布局
  • 如何以编程方式在 Android 中查找平板电脑或手机?

    我的情况是 手机和平板电脑的逻辑是相同的 但布局上略有不同 我尝试使用以下代码 public static boolean findoutDeviceType Context context return context getResour
  • 如何修复 Android 7.0 的 Spinner 模式下的 DatePickerDialog?

    我目前正在开发一个简单的项目 其中包含一个包含在 Web 视图中的网站 具有少量交互 以提高网站本身和 Android 移动设备之间的交互性 由于该网站包含用户生日的日期输入字段 因此我希望实现一个与所有设备兼容的旋转格式的日期选择器 我尝
  • EditText 中的双光标用于输入类型号码/电话(RTL 阿拉伯语)

    我将 EditText 设置为 重力右 以便如果语言是阿拉伯语 则文本从右侧开始 注意 我的应用程序支持 RTL 并且我没有为 EditText 设置 TextDirection 因为这会出现相同的问题 将重力设置为 右 可以完美完成这项工
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • 无法通过 Android 应用程序访问我的笔记本电脑的本地主机

    因此 我在发布此内容之前做了一项研究 我发现的解决方案不起作用 更准确地说 连接到我的笔记本电脑的 IPv4192 168 XXX XXX 没用 连接到10 0 2 2 加上端口 不起作用 我需要测试使用 Django Rest 框架构建的
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • eclipse - 在android虚拟设备中卡住中文

    当我在 Eclipse 中运行 Android 模拟器时 当我尝试编写文本时 所有键盘字符都会被翻译为中文 为什么是这样 Thanks 点击并按住EditText Select 输入法 Select 安卓键盘
  • 从代码动态更改多个文本视图的大小(没有“磁盘上”xml 主题)?

    我有 10 个文本视图在我的代码中 我想更改所有代码的字体大小 在我的布局中我使用了 style定义通用属性 但是我不知道一旦布局出现在屏幕上如何从代码中更改它们 我不想做的是更新 AND 对象 但只写在一处 我知道我可以使用应用主题但这假
  • Facebook Android 意图

    我对这个意图有疑问 这个意图是发送文本类型的消息 一切正常 电子邮件 短信 推特以及手机上的任何内容 但唯一有问题的是facebook 它会尝试以链接而不是文本的形式发布 Intent s new Intent android conten
  • Android - 主页按钮发出什么意图?

    我想知道设备的主页按钮到底执行什么操作 即 当您单击主页按钮时会发出什么意图 意图类别和操作 回到空白的主屏幕 我想知道在单击我自己的自定义按钮时实现此操作涉及什么 谢谢 PS我知道这不是标准的 但我的设备也不是 如果您想显示主屏幕 可以通
  • 如何在NavigationView的菜单项中设置椭圆形?

    我想在 NavigationView 的菜单项中设置 android ellipsize end 在我当前的实现中 当菜单项中的文本太长时 它只是在末尾被剪切 这是我到目前为止所尝试过的
  • 在 Android Studio 4.0(Canary) 中找不到预览窗口在哪里

    我正在浏览有关在 Android Studio 4 0 Canary 中运行的 Jetpack 的教程 请参阅下面的链接文章 https developer android com jetpack compose tutorial http
  • 无法通过usb调试安装android应用程序

    我知道这是一个老问题 但我第一次尝试在 Redmi note 4 上安装我的应用程序 每当我尝试安装时 它都会显示一个对话框 安装失败 并显示消息无法建立会话 通过卸载现有版本的 apk 如果存在 然后重新安装 可能可以解决此问题 警告 卸

随机推荐

  • 如何在 pyproject.toml 中指定“额外”/括号依赖项?

    我正在开发一个项目 该项目使用指定其依赖项Poetry https python poetry org docs pyproject and a pyproject toml https www python org dev peps pe
  • setuptools、easy_install 和自定义 pypi 服务器

    我有一个正在运行的自定义 pypi 服务器 我想知道如何将所有引用指向https pypi python org https pypi python org 从那里到我的自定义服务器 我希望能够涵盖用户调用的情况pip easy insta
  • 删除重复项并将其按行计数

    我想删除重复的条目 然后对它们进行计数以将它们显示在我的 php ROW 中的条目旁边 我已经尝试过这个
  • 从浏览器中删除cookie

    如何在asp net c 中从浏览器中删除cookie 就是这样 if Request Cookies MyCookie null HttpCookie myCookie new HttpCookie MyCookie myCookie E
  • 行尾有一个字母单词(对齐)

    我想知道如果文本行末尾有一个字母单词我能做什么 例如 Hello my name is John Smith and I am a freshman 如何将 I 移动到下一行 并调整整行 因为当我把 br 然后证明崩溃的合理性 这是jsfi
  • XCode自动生成注释?

    每次当我在 XCode 中创建一个新文件时 它都会在文件顶部做出一些注释 最近它发生了某种变化 我不知道为什么以及如何重置它 现在是这样的 Filename cpp Projectname Created by Name on Date C
  • 为什么 setMap(null) 不起作用 google 地图 api v3?

    我正在使用谷歌地图 API 3 9 在应用程序中 用户可以添加标记或删除标记 当用户单击地图时 将显示信息窗口 用户可以在其中输入名称 纬度 经度 然后单击保存图像 如下所示 google maps event addListener ma
  • Git:创建新分支并推送到远程的有效步骤

    我想出了步骤 但看起来很麻烦 采取bitbucket例如 假设我已经有一个名为prj 我从服务器端 bitbucket com 分支一个新项目 名为prj bz 从本地我添加添加远程git remote add prj bz https b
  • 在 SLURM 中运行没有顶级脚本的二进制文件

    在 SGE PBS 中 我可以像在本地一样向集群提交二进制可执行文件 例如 qsub b y cwd echo hello 将提交一个名为 echo 的作业 该作业将单词 hello 写入其输出文件 我如何向 SLURM 提交类似的工作 它
  • 删除所有行,从 /pattern/ 之后的两行开始

    假设我有一个文件如下 drink eat XXX pizza blunzn sushi 我想从文件中删除所有行 从模式后的第三行开始XXX 所以结果应该是这样的 drink eat XXX pizza blunzn 删除之后的所有行XXX很
  • Hibernate Criteria n+1 最大结果问题

    使用 hibernate ctiteria 我想选择一个对象及其关联的 oneToMany 对象列表 我想对此列表进行分页 以避免可怕的休眠 n 1 选择问题 这是一个可行的解决方案 需要 10 个父对象对数据库进行 11 次访问 Crit
  • PHP登录系统硬编码用户名和密码

    我必须做一个基本的登录系统来保护页面 并且我无法访问数据库 所以我将用户名和密码硬编码存储在 php 页面中 我的问题是 这个登录系统能抵御攻击吗 我需要它保持大约1个月 任何改进建议都会有所帮助 该代码不在 Laravel 中 即使它看起
  • Nuxt部署错误:服务器资源不可用

    为了在 ssr 模式下部署我们的 nuxt 网站 我们首先在 bitbucket 管道中构建和单元测试网站 如果测试成功 我们将构建文件从 bitbucket 服务器复制到我们的生产服务器并触发启动 问题是 Nuxt 文档没有说明服务器上需
  • 与同时使用 minmax_element 相比 min_element 和 max_element 是否有任何效率优势?

    std minmax element 返回一个对 其中包含一个到最小元素的迭代器作为第一个元素 一个到最大元素的迭代器作为第二个元素 std min element 返回一个迭代器到范围 first last 中的最小元素 std max
  • 如何向我的 Linq 选择添加唯一的行号?

    我有以下代码 public IEnumerable
  • Django 1.5:访问 models.py 中的自定义用户模型字段

    我正在开发 Django 1 5 项目 我有一个自定义用户模型 我们称之为CustomUser 另一个应用程序 SomeApp 需要引用此自定义用户模型 为了ForeignKey等的目的 Django文档说使用 User settings
  • 连接两个字符数组?

    如果我有两个像这样的字符数组 char one 200 char two 200 然后我想做第三个连接这些的我该怎么做呢 我努力了 char three 400 strcpy three one strcat three two 但这似乎不
  • 使用 MultipartEntity 构造 POST 请求

    我想构造一个多部分请求 具有以下参数 名称 字符串 电子邮件 字符串 和文件上传 文件 我正在使用下面的 Java 代码 在 Android 中工作 httppost getRequestLine 打印 POST http www myur
  • Shell 重定向与显式文件处理代码

    我的母语不是英语 所以请原谅这个问题的尴尬标题 我只是不知道如何更好地表达它 我在 FreeBSD 机器上 我有一个用以下语言编写的小过滤工具C它通过读取数据列表stdin并通过输出处理后的列表stdout 我像这样调用它 find typ
  • 为什么微调器中的 onNothingSelected 没有被调用?

    我有一个 Android Spinner 当用户在显示 Spinner 的选择面板时按 后退键 时 我想监听该事件 我已经实现了 OnItemSelectedListener 但按后退键时未调用 onNothingSelected Adap