,要么弹出上下文菜单(上下文菜单只需注册就好,无需额外处理长按事件)。...,主要用于EditText控件。...比如屏幕上有多个EditText输入框,当用户点击某个输入框,则该输入框获得焦点;然后用户再点击另一个输入框,则原输入框失去焦点,当前输入框获得焦点;所有获得焦点与失去焦点的控件,都有条件响应焦点变化事件...物理按键点击 android手机除了位于中间的Home主页键,还有左边的菜单键,右边的返回键。按下菜单键,屏幕上弹出该页的Menu菜单(如果有定义的话)。...退出常见的提示方式不外乎两种: 1、APP弹出一个确认对话框,让用户选择是否退出APP,点击“是”按钮则退出,点击“否”按钮则取消; 2、APP弹出Toast提示“再按一次返回键退出”,如果用户三秒之内接着又按了一次返回键
在非EditText的控件中找一个,设置成 android:focusable="true" android:focusableInTouchMode="true" 软键盘不遮挡 解决Android软键盘在全屏下设置...软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。...stateVisible 当用户导航到Activity主窗口时,软键盘是可见的。不过当用户离开一个Activity而导致另一个被覆盖的Activity显示出来时,软键盘会使用默认的设置。...系统将自动选择这些模式中一种主要依赖于是否窗口的内容有任何布局视图能够滚动他们的内容。如果有这样的一个视图,这个窗口将调整大小,这样的假设可以使滚动窗口的内容在一个较小的区域中可见的。...获取子视图 ListView有一个getChildAt()方法,参数传的不是子视图的position,而是当前显示区域的位置,所以正确的获取position位置视图的方法为 int firstVisiblePosition
的焦点,即是否选中 // setClearIconVisible() = 根据传入的是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @Override...对于含有一键清空功能 & 更多自定义样式的EditText自定义控件具体请看我的另外一个简单 & 好用的开源组件:Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText..., new String[]{tempName}); // 判断是否有下一个 return cursor.moveToNext(); } /** * 关注...具体使用 具体请看文章:Android开源库:这里有一个简单好用、含历史搜索记录的搜索框 完整Demo地址:Carson_Ho的Github地址:SearchView ? ---- 8....下一篇文章我将继续进行一些有趣的自定义View实例讲解,有兴趣可以继续关注Carson_Ho的安卓开发笔记 更多简单好用的开源库:简单 & 好用的开源组件: 自定义EditText:手把手教你做一款含一键删除
咱们书接上文,继续来说说Android数据读取,这回,我们要讲的是Sqlite数据库的相关操作。以一个实例开始吧: 首先,上图,看看做成后的效果: ? ? ?...大概描述:类似于浏览器的收藏夹,网站名称,网站地址,网站描述,添加完成之后显示已添加的所有的内容,在ListView单击弹出是否删除对话框,删除成功后刷新视图并重新查询内容。...安卓提供了创建和使用SQLite数据库的API。SQLiteDataBase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类更简洁的功能。...listview =getListView(); //为列表视图添加适配器 listview.setAdapter(apt); //提示对话框 final AlertDialog.Builder...getMenuInflater().inflate(R.menu.query, menu); return true; } } 附件: 有需要源码的请移步:http://download.csdn.net
demo的数据是将个人的信息绑定到listview中,并存在sqlite。...2.list_item.xml 本例是将person信息绑定到listview中,有必要定义自己的listview项。...:layout_height="match_parent" > 11 ListView> 12 13 main,xml只有一个listview,用来显示...7.contextmenu 本例个人信息的删除是用contextmenu实现的,用户长按lsitview的某一项,即可弹出删除的上下文菜单。...点击menu中的添加之后,会弹出添加用户的对话框,点击确定信息将会被保存。
Touch Mode, Selection, and Focus 安卓手机在过去的几年里经历了多种输入方式,比如手指、电容笔、 键盘、触摸球等等,开发人员需要对这些不同的操作有不同的响应。 ?...想象一下,有一个 ListView,当我们选中一个 Item 时,会进入 selected 状态 : ?...focusableInTouchMode, 常用在 输入框 EditText 或者 ListView。...EditText 默认 focusableInTouchMode 为 true,因此我们点击后它才能获取焦点,当我们设置 EditText focusableInTouchMode 为 false 时,...当我们设置 ListView 的 focusableInTouchMode 为 false 时,它的 item 也无法获取不到焦点,这在有的场景下会有用处。
该activity没有完全覆盖上一个activity onPause() 点击回退键 onResume() EditText 让其失去焦点,有焦点但不弹出输入键,内容改变监听 EditText...android:focusable=”false”/> 但让其失去焦点但可以输入则 在其父控件加上android:focusable=”true” android:focusableInTouchMode...(true);也是不可编辑的,感觉这个时候EditText控件高亮度了,但是没有焦点 3、最后尝试使用editText.setFocusable(false);和editText.setFocusableInTouchMode...();设置可编辑状态 (有焦点但不显示输入盘) 在Androidmianfest.xml中加一个退出按钮 setNegativeButton 设置对话框显示一个取消按钮 create创建一个AlertDialog对话框 show显示对话框
0x01 问题查找 作为一个 Android 开发者,看到情况描述,联想到是焦点问题。...类似于 Android 原生开发的『ListView 的 Item 中 包含 EditText Button 时:EditText 与 Button 如何获取焦点、无法点击、ListView 不能滑动等...此外,在 stackoverflow 上也搜索到相关的回答,说是 ListView 也有此属性,但我本地 react-native-0.57.2 ListView 源码中并没有此属性。...参见博客的相关文章。 0x03 总结 发现问题,借助搜索工具能很快得到解决方案,我这里也特地把解决方法直接写到了文章的开头,至于如何解决问题,是给想了解原因的人准备的一个思路和说明。...如果你有更好的见解,欢迎和我一起讨论。 如果有什么建议或者问题可以随时联系我,共同探讨学习: Github: likfe CSDN:他叫自己Mr.张 掘金:cafeting 微博:cafeting
二需求 我们如何能封装一个没有耦合性的自定义键盘,笔者能想到的需求如下: 动态添加到任何布局中 解决和系统键盘显示冲突 动态绑定系统输入框 有show和hide动画,让键盘显示更加优雅 没有耦合,使用方便..."复制代码 让系统键盘不弹出来 3.3动态绑定输入框 系统的输入框是当EditText获取焦点的时候会弹出来,所以这里我们要给传递进来的EditText设置焦点改变监听,通过焦点改变来显示键盘。...仍然在获取焦点,再次点击这个EditText,键盘并未弹出。...因为焦点没有改变。这就需要我们在我们传递过来的布局文件中添加一个宽高是0的EditText。让用户点击完成的时候,这个EditText获取焦点。...3.5没有耦合,使用方便,尽可能让原生属性有效 这就需要我们用EditText,获取他的属性,然后根据属性去设置键盘的变换 3.6键盘特殊按钮监听 我们写一个外部回调方法即可实现这个需求。
而在触摸设备上通常默认情况下只有EditText控件才具有焦点,而我们通常会遇到的一个问题就是当进入一个具有EditText的界面时键盘就会自动弹出,而且有时候可能无法消失,但需求可能是进入时不弹出键盘...ViewGroup没有焦点并不代表其子视图也没有焦点,这里没有父子制约关系。 任何时候一个窗口内都只有一个视图具有焦点,或者所有视图都无焦点。 并不是所有视图都可以获取焦点。...下面的函数用来查找具有焦点的视图,如果是View则判断自己是否有焦点,如果是ViewGroup则自己就是焦点返回自己,否则返回儿子视图里面的焦点视图。...通过setDescendantFocusability和requestFocus方法的配合就可以解决那种只有一个EditText且一进入就自动键盘弹出的问题。...因为默认的EditText是一个可成为焦点的视图,这样根据规则当界面展示时就会成为一个焦点视图从而弹出键盘,这样即使对EditText调用clearFocus也因为规则导致他还是焦点视图。
;} caozuodata();//实现数据的更新 AlertDialog aldg=new AlertDialog.Builder(Mainactivity1...;} caozuodata();//实现数据的更新 AlertDialog aldg=new AlertDialog.Builder(Mainactivity1...edtcm.setText("");//输入框不能为空 edtcm.findFocus();//输入框获得焦点...=null && c.moveToNext()){ Zhipai zp=new Zhipai(); //新建一个book对象;实体类,要实体类的每个属性...,从books集合里面逐个取对象book; //将图书相关信息组合成一个字符串,存储在字符串数组中的相应位置;
AlertDialog:可以在当前界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此AlertDialog一般用于提示一些非常重要的内容或警告信息,例如一些确认信息等...ProgressDialog:和AlertDialog类似,都可以在界面弹出一个对话框,并且可以屏蔽掉其他界面的交互能力。...该布局有一个专属属性android:orientation,这个属性有两个选择vertical和horizontal,代表着线性排列的规律(水平方向还是垂直方向)。...如果LinearLayout 的排列方向是 horizontal,内部的控件就绝对不能将宽度指定为match_parent,因为这样的话单独一个控件就会将整个水平方向占满,其他的控件就没有可放置的位置了...的权重设为1,而width设为0只是一个规范化写法,因为send的width是wrapcontent,所以这一行的剩余空间分到所有权重之和(1)上,1/1即为edittext所占比例。
软键盘弹出的时机 如果不做任何处理,系统默认的是,进入页面,第一个输入框自动获取焦点软键盘自动弹出,这种用户交互方式,往往不是产品想要的,往往会提出以下优化需求: 需求1:editText获取焦点,但是不弹出软键盘..." (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) android:windowSoftInputMode="stateAlwaysHidden" (效果:软键盘不弹出...,光标显示在第一个输入框中) 需求2:editText不获取焦点,当然软键盘不会主动弹出(光标也不显示) 在第一个输入框的最直接父布局加入:android:focusable="true";android...:focusableInTouchMode="true" (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点,ps非直接父布局没有效果) 在父布局最顶部添加一个高度为0的EditText,抢了焦点但不展示...stateVisible-可见状态:当设置为这个状态时,软键盘总是可见的,即使在界面上没有输入框的情况下也可以强制弹出来出来。
前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。...默认获取焦点 EditText 默认获取焦点,并弹出键盘,这本来是默认的行为。...但有些情况,会因为焦点被别的控件获取了,我们又想让它自动获取焦点,并自动弹出键盘。...(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); //如果上面的代码没有弹出软键盘 可以使用下面另一种方式..., 0); } 取消 EditText 默认获取焦点的行为 在EditText的父级控件中找一个,添加这两个属性: android:focusable="true" android:focusableInTouchMode
3、焦点变化事件,主要用于EditText控件。...比如屏幕上有多个EditText输入框,当用户点击某个输入框,则该输入框获得焦点;然后用户再点击另一个输入框,则原输入框失去焦点,当前输入框获得焦点;所有获得焦点与失去焦点的控件,都有条件响应焦点变化事件...: onItemSelected : 列表项被选中时调用 onNothingSelected : 没有选择任何项时调用,该方法一般为空 2、单项点击事件,一般用于ListView控件和GridView...物理按键点击 iphone手机控制屏幕的按键只有一个Home键,相比之下,android手机除了位于中间的Home主页键,还有左边的菜单键,右边的返回键。...常见的提示方式不外乎两种: 1、APP弹出一个确认对话框,让用户选择是否退出APP,点击“是”按钮则退出,点击“否”按钮则取消; 2、APP弹出Toast提示“再按一次返回键退出”,如果用户接着又按了一次返回键
介绍 使用 fusion app 对网页进行的封装。...的缓存吗?") ....("请填写所有字段") end end) ....设置消息 ("没有收藏") end dlb....("该链接已存在") addDataDialog(name,title,edit1.text,edit2.text) end else 弹出消息 ("请填写所有字段
:digits 在Android开发中,经常要设置EditText为密码显示,但是通常要求密码只能是 **字母和数字 . _ **的组合,此时就可以用该属性进行过滤 EditText...(new NumberKeyListener() { //限制弹出的键盘类型 public int getInputType() {...setKeyListener.gif 3、ListView 的 setEmptyView 该方法可以为没有数据的ListView 设置一个提示View,常常用在ListView没有加载到数据或加载数据失败时提示...setEmptyView.png 注意 经过本人测试,如果ListView包含在某些下拉刷新框架中,这样做是没有效果的,应该是冲突了。...常见的使用场景是某个按钮特别小,为了设置点击事件,给其包裹一层Parent布局,将点击事件写到Parent上,如果希望被包裹按钮的点击效果对应的Selector继续生效的话,就可以使用它了,来个有说服力的测试案例
一个典型的例子就是使用AlertDialog做一个登录对话框。...对话框的基本用法 通过查看AlertDialog类,我们可以发现,该类并没有public的构造方法,因此我们不能直接创建AlertDialog对象。...也就是说,对于数据集来说,某个列表项是否被选中,是有另外一列的字段值决定的。 labelColumn:只用于数据集。指定用于显示列表项的列的字段名。 ?...android.app.ProgressDialog类实现,该类是AlertDialog的之类,但与AlertDialog类不同,我们可以直接使用new关键字创建ProgressDialog对象。...圆形进度条对话框的进度圆圈只是一个普通的动画,并没有任何表示进度的功能,这种对话框一般在很难估计准确的时间和进度时使用 ---- 登录对话框,自定义布局 -setView 我们可以直接使用布局文件或者代码创建视图对象
这里提供一个用属性动画实现的方法。 还是先看看效果吧: image.png 大概的思路是这样的: 控件有两层,一层是浮动的标签,一层是输入框。...当点击控件后,标签同时执行一个横向和纵向的缩放动画,还有一个向上移动的动画,让输入框获取到焦点并弹出键盘。 当输入框失去焦点时,判断是否有内容,如果没有则让标签执行一个复原的动画。...etContent.setVisibility(View.VISIBLE); etContent.requestFocus(); //弹出键盘...动画执行完后显示EditText,让它获取到焦点并弹出键盘。...,标签复原,我们需要监听输入框是否有焦点: etContent.setOnFocusChangeListener(new OnFocusChangeListener() { @Override
通过 android:maxLines指定 EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而 EditText则不会再继续拉伸 如何才能让进度条在数据加载完成时消失呢?...,HorizontalScrollView用于设置水平滚动条:需要注意的是,有一个属性是 scrollbars 可以设置滚动条的方向:但是ScrollView设置成horizontal是和设置成none...ll.addView(tv); }//页面并没有实现滑动,所以在布局文件中外层添加一个进行滑动。...注册了一个监听器,当用户点击了 ListView中的任何一个子项时就会回调 onItemClick()方法, 在这个方法中可以通过 position参数判断出用户点击的是哪一个子项,然后获取到相应的水果...有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力。
领取专属 10元无门槛券
手把手带您无忧上云