首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何避免在单击键盘上的完成时调用ExpandableListView中的getChildView

在ExpandableListView中,当用户单击键盘上的完成按钮时,可能会触发ExpandableListView中的getChildView方法。为了避免这种情况发生,可以通过以下方法进行处理:

  1. 设置OnEditorActionListener:在EditText中设置OnEditorActionListener,监听键盘上的完成按钮事件。当用户点击完成按钮时,会触发OnEditorActionListener中的回调方法。
  2. 判断事件类型:在OnEditorActionListener的回调方法中,判断事件类型是否为完成按钮的事件。可以通过判断actionId是否等于EditorInfo.IME_ACTION_DONE来确定。
  3. 关闭键盘焦点:如果事件类型为完成按钮的事件,可以通过以下方法关闭键盘焦点,避免调用ExpandableListView中的getChildView方法:
    • 调用EditText的clearFocus()方法,清除EditText的焦点。
    • 调用InputMethodManager的hideSoftInputFromWindow()方法,隐藏软键盘。

以下是一个示例代码:

代码语言:txt
复制
expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
    @Override
    public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
        // 处理组点击事件
        return false;
    }
});

expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
    @Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        // 处理子项点击事件
        return false;
    }
});

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            // 关闭键盘焦点,避免调用ExpandableListView中的getChildView方法
            editText.clearFocus();
            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
            return true;
        }
        return false;
    }
});

这样,在用户单击键盘上的完成按钮时,就可以避免调用ExpandableListView中的getChildView方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

可折叠列表ExpandableListView多级选择

一、认识ExpandableListView ExpandableListView 是 ListView 的子类,它在普通ListView的基础上进行了扩展,它把应用中的列表项分为几组,每组里又可包含多个列表项...android:childIndicator:显示在子列表旁边的Drawable对象,可以是一个图像。 android:childIndicatorEnd:子列表项指示符的结束约束位置。...二、ExpandableListView 示例 接下来通过一个简单的示例程序来学习ExpandableListView的使用方法。...getChildrenCount():该方法返回特定组所包含的子列表项的数量。 getChildView():该方法返回的View对象将作为特定组、特定位置的子列表项。...修改程序启动的Activity,运行程序,可以看到下图所示界面效果。 ? 点击组的时候,会将其子元素打开,如上图右侧所示,单击其中的列表会弹出消息提示。

2.6K100
  • A022-列表容器之ExpandableListView

    概述 本节课介绍Android中可实现二级可展开收缩列表的ExpandableListView容器,笔者感觉它非常难用并且难理解,很多时候我们可能需要对控件进行扩展和定制,然而它不太方便扩展,它使用难点主要在数据结构上和对控件的事件监听...,其他的实现方式类似ListView,下面会提供笔者在实际开发中使用到的案例。...上面实现的效果可展开的二级列表,每个组项都可能有若干个子项,默认的ExpandableListView不太美观,我们需要通过自定义布局类美化它,在使用过程中有一些需要我们去了解的点,会在实现过程提一下。...,我们设置数据的时候分别在getGroupView和getChildView方法来设置组视图和子项视图数据,最后返回填充数据的视图对象,一些逻辑控制的代码也是在这两个方法中进行,比如控制组项的展开、组项的点击...,终究我们还是可以找到解决方案,在Android开发当中我们经常打交道也最头痛的是UI,多实践和学习才能更好的完成工作,谢谢大家。

    92810

    安卓ExpandableListView的详细使用教程(附代码解析过程)

    、实现效果   ExpandableListView又称可扩展的ListView,简单来说长这个样: 每一个一级布局下面又可以展开二级布局。...二、实现步骤 使用ExpandableListView主要有三个步骤: 编写父布局 编写子布局 适配器的书写 1.编写父布局parent.xml   父布局其实很简单,就是两个并排的TextView,用于展示课程名字和分数...的Adapter都要继承BaseExpandableListAdapter这个类,并且必须重载getGroupView和getChildView这两个最为重要的方法。...getGroupView(),返回外面那层布局的视图,也就是各种课程的名称以及分数: getChildView(),返回子布局里面的视图,也就是每门学科的详细信息: GradeAdapter的详细代码为...,我们在getGroupView中初始化这些变量,这些变量的数据都保存在list里面,都在我们初始化GradeAdapter时传进来。

    1.2K20

    Android之微信朋友圈UI实现--ExpandableListView+GridView

    步骤: 总布局的创建,里面只要一个ExpandableListView控件。 ExpandableListView的item布局创建,本布局用最传统的做法分为Group和Child布局。...1: 总布局的创建,里面只要一个ExpandableListView控件。 这里文件非常简单,只有一个控件,当然ExpandableListView也是有很多属性的。...这里都没有写,去掉箭头,在Activity中动态添加。这里布局文件我都省去了根布局LinearLayout。...适配器创建 适配器的创建才是重点,首先我们对ExpandableListView自定义适配器,然后再在里面嵌套一个GridView的自定义适配器,当然你也可以调用系统的,不过个人觉得自定义有更好的灵活性...3.1:方法作用详情(没有先后顺序,古无序号) 首先定义变量(这里listChild为什么list里泛型还是list,我在Activity中解释)   public Context context;

    1.3K30

    在 Python 中,通过列表字典创建 DataFrame 时,若字典的 key 的顺序不一样以及部分字典缺失某些键,pandas 将如何处理?

    当通过列表字典来创建 DataFrame 时,每个字典通常代表一行数据,字典的键(key)对应列名,而值(value)对应该行该列下的数据。如果每个字典中键的顺序不同,pandas 将如何处理呢?...列顺序:在创建 DataFrame 时,pandas 会检查所有字典中出现的键,并根据这些键首次出现的顺序来确定列的顺序。...在个别字典中缺少某些键对应的值,在生成的 DataFrame 中该位置被填补为 NaN。...总而言之,pandas 在处理通过列表字典创建 DataFrame 时各个字典键顺序不同以及部分字典缺失某些键时显示出了极高的灵活性和容错能力。...希望本博客能够帮助您深入理解 pandas 在实际应用中如何处理数据不一致性问题。

    18800

    站在巨人的肩膀上---重新自定义 android- ExpandableListView 收缩类,实现列表的可收缩扩展

    距离上次更新,时隔略长,诸事繁琐,赶在去广州答辩之前,分享下安卓 android 中的一个 列表收缩 类---ExpandableListView 先上效果图: 如果想直接看实现此页面的代码请下滑到...我在这里主要通过源代码的注释和必要的说明,说明如何实现自定义的收缩列表。...必要的函数: 0-> 1 ExpandableListView expandListView = (ExpandableListView) this.findViewById(R.id.ecpandable...的儿童的数据,就是存放arms 206 @Override 207 public View getChildView(int groupPosition...-其他设置-------------------------------------------------------------------*/ 368 369 //孩子在指定的位置是可选的

    1.7K70

    JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

    当组件获得或失去键盘焦点时,可调用侦听器对象中的相关方法,并将 FocusEvent 传递给它。 API focusGained ? focusLost ?...要获取许多组件的焦点状态,请考虑在KeyboardFocusManager类上实现PropertyChangeListener实例,如如何使用焦点子系统中的将焦点更改跟踪到多个组件中所述。...单击文本字段以将焦点返回到初始组件。 按键盘上的Tab。焦点移到组合框,并跳过标签。 再次按Tab键。焦点移至按钮。 单击另一个窗口,以便FocusEventDemo窗口失去焦点。...为按钮生成一个临时的焦点丢失事件。 单击FocusEventDemo窗口的顶部。该按钮触发了聚焦事件。 按键盘上的Tab。焦点移至列表。 再次按Tab键。焦点移到文本区域。...该演示通过在文本区域上调用setRequestFocusEnabled(false)来禁用文本区域的单击焦点,同时保留其选项卡焦点功能。

    4.8K10

    Intellij IDEA快捷使用

    按键说明 按键 说明 + 需要同时按下加号左右两侧的键 , 按下逗号左侧的键后,松开,然后按下逗号右侧的键 Ctrl 控制键,键盘上标记了Ctrl的键,在Mac键盘上标记为control Shift 上档键...,键盘上标记了Shift的键 Alt 切换键,键盘上标记了Alt的键,在Mac键盘上与Option是同一个键 Command 命令键,Mac键盘独有,标记了Command的键 Enter 回车键,键盘上标记了...Enter的键,在Mac键盘上与return是同一个键 Space 空格键,键盘上最下方、最大的按键 Up / Down 方向上/方向下,通常在键盘上标记了向上/向下的箭头 某些快捷键可能与操作系统或其它软件的全局快捷键是冲突的...管理与导航 Windows Mac OS 说明 Shift + F6 Shift + F6 重命名,适用于:在文件列表中对文件重命名,在文件内部对类名、属性名、方法名等重命名 Shift + 单击 在选项卡处单击以关闭文件...操作方式 可以通过快捷输入简单的内容后按下Enter键,快速完成特定的代码内容,这些内容可以在设置的Editor > Live Templates中查看或调整。 2.2.

    1.3K20

    职场人必备的WORD排版十大技巧

    5 整个文件内容的选取: 把指针移到该文件中任一行首(在指针变成向右的箭头时),快速单击鼠标左键三次便可选中整个文件内容(也可利用组合键“ Ctrl+A ”快速选定)。...Shift+Alt+ 鼠标左键单击:可选中原光标所在位置至后鼠标左键单击光标位置的矩形区域。 小提示: 在选取时还可利用“ F8 ”键来进行快速选取。...在需要返回到前次编辑位置时,可直接在键盘上按组合键“ Shift+F 5 ” 。同时使用该组合键还可使光标在最后编辑过的三个位置间循环转换。...8.快速调整 Word 行间距 问:在编辑调整 Word 文件行距时,常见一些“高手”不用调出格式来进行设置,请问他们是如何完成调整的呢?...答:在 Word 文件中,行的操作非常多,而列的操作相对来说要少很多,其实要选择列有种好方法轻松完成。

    1.5K70

    Macbook Pro 2017 13-inch

    例如,当人们在文档中键入文本时,触控栏可以包含用于调整字体样式和大小的控件。或者,当在地图上查看某个位置时,Touch Bar 可以提供对附近兴趣点的快速、一键式访问。...即使您的应用正忙于工作或更新主屏幕,当人们使用触控栏控件时,也会立即做出响应。 如果可能,人们应该能够在触控栏中开始和完成一项任务。...避免让人们切换到键盘或触控板来完成任务,除非该任务需要比 Touch Bar 提供的更复杂的界面控件。 避免将触控栏用于与众所周知的键盘快捷键相关的任务。...准确反映出现在触控栏和主屏幕上的控件状态。例如,如果一个按钮在主屏幕上不可用,则它不应该在触控栏中可用。 响应用户交互时,避免在 Touch Bar 和主屏幕中显示相同的 UI。...例如,当人们在邮件的新消息窗口中单击屏幕上的表情符号和符号按钮时,他们希望字符查看器在主屏幕上打开,而不是在触控栏中打开。

    1.1K40

    如何安装Debian 10(Buster)最小服务器

    在本文中,我们将向您展示如何在Linux服务器或计算机上安装Debian 10(Buster)最小服务器 。...决定对磁盘进行分区后,选择“ 是”在磁盘上创建新的空分区表,然后单击“继续”。 接受分区磁盘 18.已在磁盘上创建新的空分区表。 双击它以创建新分区。...完成后,选择“完成”设置分区,然后单击“继续”。 根分区设置 22.新分区(大小为30.4 GB )现在应该出现在所有已配置分区的列表中,其摘要如下面的屏幕截图所示。...分区表摘要 26.然后接受在分区过程中对磁盘所做的最新更改,以允许安装程序将它们写入磁盘。 选择是 ,然后单击继续。 之后,安装程序将开始安装基本系统。.....Xfce选项以避免安装它们(请参阅系统要求)然后单击继续。 软件选择 32.最后但并非最不重要的是,通过从以下界面中选择是 ,告诉安装程序安装GRUB引导加载程序。 然后单击继续。

    7.9K30

    一日一技:Excel如何拆分单元格并自动填充

    我们经常看到如下图所示的Excel表格: ? 这种表格,每一列的包含关系,人眼看起来一目了然。但是A列B列这种由多个单元格合并起来的单元格,在使用程序进行处理的时候却非常不方便。...如果要使用pandas这种程序来处理Excel表格,我希望Excel的表格数据长成下面这个样子: ? 那么要如何把人容易读的表格转化为程序容易读的表格呢?下面的步骤,会让你在3秒钟内实现。...首先全选所有数据,并单击“合并后居中”按钮旁边的小箭头,单击“取消单元格合并”,运行以后的效果如下图所示。 ? 此时,数据还是处于选中的状态,先不要取消。...直接点击菜单栏的“编辑”按钮,选择“查找”-“定位”,如下图所示。 ? 在弹出的对话框中,单击“定位条件”按钮,如下图所示。 ? 选中“空值”并单击确定。如下图所示。 ? 此时,最关键的一步到了。...鼠标千万不要乱动,直接先按下键盘上面的 =键,然后再按一下键盘上的 方向键上。 现在Excel的显示如下图所示: ? 最后,按下键盘上的 Ctrl + Enter。 任务完成。

    7.9K31
    领券