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

如何避免在单击键盘上的完成时调用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方法。

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

相关·内容

Android ExpandableListView双层嵌套实现三级树形菜单

Android开发,列表可以说是最常见了,一般都是使用ListView,当涉及到二维数组,更多使用到ExpandableListView,然而当数据结构比较复杂,就需要使用三级菜单或者更多级菜单来显示...首先第一个要处理问题是AdpOnegetChildView方法,需要对EListTwo高度进行动态计算,因为EListTwo展开和关闭高度是不一样,所以要在EListTwosetOnGroupExpandListener...和setOnGroupCollapseListener方法做相应处理: /** * @author Apathy、恒 * * 子ExpandableListView展开,因为group...,我们一般需要点击菜单后进行相应界面跳转或者数据处理,所以就需要获取所点击菜单精确下标,获取方法很简单,只需要定义一个接口,AdpOnegetChildView方法回调即可: /** * @...author Apathy、恒 * * 点击子ExpandableListView子项调用回调接口 * */ eListView.setOnChildClickListener(new

3.6K20

支持多项选择ExpandableListView

Adapter方法getChildView()需要实现鼠标点击监听器: public View getChildView(final int groupPosition, final int childPosition...渲染后child view类似于放在一个cache,下一次再通过convertView取,由于Group收缩或扩展操作会隐藏/显示一些child view,导致某一child Viewflat...所以,每次获取到view后都需要对其内容重新设置(比如设置正确文本,设置监听器等) 2. check状态设置很tricky。我开始认为直接在监听器调用容器toggle()方法即可。...所以,为了解决这个问题,我adapter里增加了一个二维表用于记录每一列表项check状态。...执行 listViewsetItemChecked函数,其check状态是从这个自己创建读出,不能通过ListViewmCheckStates来读。

98320
  • 可折叠列表ExpandableListView多级选择

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

    2.5K100

    Android如何实现社交应用评论与回复功能详解

    前言 Android日常开发,评论与回复功能是我们经常遇到需求之一,其中评论与回复列表展示一般功能模块占比较大。...对于需求改动和迭代较频繁公司来说,如何快速开发一个二级界面来适应我们功能需求无疑优先级更高一些。首先我们来看看其他社交类app评论与回复列表如何展示: ? ?...我们可以取消其点击特效,避免其影响用户体验,只需要设置如上代码listSelector即可。 ExpandableListView具有默认分割线,可以通过divider属性将其隐藏。...getChildId,返回分组某个childid,一般也将child当前位置传给它,不过为了避免重复,可以使用getCombinedChildId(groupPosition, childPosition...getChildView,返回分组child子项视图,比较容易理解,第一个参数是当前group所在位置,第二个参数是当前child所在位置。

    2.5K20

    A022-列表容器之ExpandableListView

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

    91510

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

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

    1.1K20

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

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

    1.2K30

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

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

    11300

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

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

    4.7K10

    站在巨人肩膀上---重新自定义 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

    Intellij IDEA快捷使用

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

    1.3K20
    领券