Android中EditText获得焦点后马上又失去了,可能是什么造成的呢

Android中EditText获得焦点后马上又失去了,可能是什么造成的呢,第1张

中EditText获得焦点后马上又失去了有以下几种情况:

EditText处在一个可以滚动的控件中,例如ListView等,当得到焦点后软件键盘会d出,这个时候滚动控件会重绘,因此会失去焦点。

EditText注册了焦点事件,得到焦点后将焦点转向了其它控件。

EditText禁止了获取焦点。

两种解决办法:

第1种:ScrollView+LinearLayout

第2种:ListView+LinearLayout

如果用第1种方法,每一行的layout和UI控件全部都得用new的,虽然在处理上会简单一点。

第2种方法,ListView的超过一屏之后的Cell可以重用前一屏的Cell(通过getView方法)。

如何设定android studio 版本

TextView的属性:

Android:autoLink设定是否当文字为URL连结/email/电话号码/map时,文字显示为可点选的连结。可选值(none/web /email/phone/map/all)

android:autoText如果设定,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。

android:bufferType指定getText()方式取得的文字类别。选项editable 类似于StringBuilder可追加字元,也就是说getText后可呼叫append方法设定文字内容。spannable 则可在给定的字元区域使用样式,参见这里1、这里2。

android:capitalize设定英文字母大写型别。此处无效果,需要d出输入法才能看得到,参见EditView此属性说明。

android:cursorVisible设定游标为显示/隐藏,预设显示。

android:digits设定允许输入哪些字元。如“1234567890+-/% ()”

android:drawableBottom在text的下方输出一个drawable,如。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。

android:drawableLeft在text的左边输出一个drawable,如。

android:drawablePadding设定text与drawable()的间隔,与drawableLeft、 drawableRight、drawableTop、drawableBottom一起使用,可设定为负数,单独使用没有效果。

android:drawableRight在text的右边输出一个drawable。

android:drawableTop在text的正上方输出一个drawable。

android:editable设定是否可编辑。

android:editorExtras设定文字的额外的输入资料。

android:ellipsize设定当文字过长时,该控制元件该如何显示。有如下值设定:”start”—省略号显示在开头;”end” ——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

android:freezesText设定储存文字的内容以及游标的位置。

android:gravity设定文字位置,如设定成“center”,文字将居中显示。

android:hintText为空时显示的文字提示资讯,可通过textColorHint设定提示资讯的颜色。此属性在 EditView中使用,但是这里也可以用。

android:imeOptions附加功能,设定右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设定预设是一个回车符号。这个在EditView中再详细说明,此处无用。

android:imeActionId设定IME动作ID。

android:imeActionLabel设定IME动作标签。

android:includeFontPadding设定文字是否包含顶部和底部额外空白,预设为true。

android:inputMethod为文字指定输入法,需要完全限定名(完整的包名)。例如:googleandroidinputmethodpinyin,但是这里报错找不到。

android:inputType设定文字的型别,用于帮助输入法显示合适的键盘型别。在EditView中再详细说明,这里无效果。

android:linksClickable设定连结是否点选连线,即使设定了autoLink。

android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设定重复滚动的次数,当设定为 marquee_forever时表示无限次。

android:ems设定TextView的宽度为N个字元的宽度。这里测试为一个汉字字元宽度

android:maxEms设定TextView的宽度为最长为N个字元的宽度。与ems同时使用时覆盖ems选项。

android:minEms设定TextView的宽度为最短为N个字元的宽度。与ems同时使用时覆盖ems选项。

android:maxLength限制显示的文字长度,超出部分不显示。

android:lines设定文字的行数,设定两行就显示两行,即使第二行没有资料。

android:maxLines设定文字的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。

android:minLines设定文字的最小行数,与lines类似。

android:lineSpacingExtra设定行间距。

android:lineSpacingMultiplier设定行间距的倍数。如”12”

android:numeric如果被设定,该TextView有一个数字输入法。此处无用,设定后唯一效果是TextView有点选效果,此属性在EdtiView将详细说明。

android:password以小点””显示文字

android:phoneNumber设定为电话号码的输入方式。

android:privateImeOptions设定输入法选项,此处无用,在EditText将进一步讨论。

android:scrollHorizontally设定文字超出TextView的宽度的情况下,是否出现横拉条。

android:selectAllOnFocus如果文字是可选择的,让他获取焦点而不是将游标移动为文字的开始位置或者末尾位置。 TextView中设定后无效果。

android:shadowColor指定文字阴影的颜色,需要与shadowRadius一起使用。

android:shadowDx设定阴影横向座标开始位置。

android:shadowDy设定阴影纵向座标开始位置。

android:shadowRadius设定阴影的半径。设定为01就变成字型的颜色了,一般设定为30的效果比较好。

android:singleLine设定单行显示。如果和layout_width一起使用,当文字不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine "

android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设定singleLine或者设定为false,文字将自动换行

android:text设定显示文字

android:textAppearance设定文字外观。如 “android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,表示系统是否有这种外观,否则使用预设的外观。可设定的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverse

android:textColor设定文字颜色

android:textColorHighlight被选中文字的底色,预设为蓝色

android:textColorHint设定提示资讯文字的颜色,预设为灰色。与hint一起使用。

android:textColorLink文字连结的颜色

android:textScaleX设定文字之间间隔,预设为10f。

android:textSize设定文字大小,推荐度量单位”sp”,如”15sp”

android:textStyle设定字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设定一个或多个,用“|”隔开

android:typeface设定文字字型,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字型) 3]

android:height设定文字区域的高度,支援度量单位:px(画素)/dp/sp/in/mm(毫米)

android:maxHeight设定文字区域的最大高度

android:minHeight设定文字区域的最小高度

android:width设定文字区域的宽度,支援度量单位:px(画素)/dp/sp/in/mm(毫米),与layout_width 的区别看这里。

android:maxWidth设定文字区域的最大宽度

android:minWidth设定文字区域的最小宽度

android studio 编译无gradle 如何设定最小版本

安装Android Studio的准备工作 1下载好JDK 去官网上找一个下载下来 2安装JDK并配置环境变数安装过程可以一直下一步,无脑 *** 作 3下载Android Studio的安装包 去官网上找一个,下载下来 (jdk的环境变数一定要配置) 准备工作完成之后,就可以开始我们的安装了 1安装Android studio也是无脑 *** 作,一直点下一步。直到安装结束 2安装好之后,我们要新建我们的专案。重点从这里开始 点选 New Project会出现我们设定好名称,也可以无脑 *** 作,一直点选next,直至结束,不过这个过程需要我们耐心的等待。(时间有点漫长)。 然后我们就会进入我们的开发介面。点选中红圈的图示(SDK manager)会出现下图 这个步骤是安装Android的sdk,推荐,Android16~Android442全部安装。(这个耗费时间挺长的,请在网速良好且大量闲暇时光下安装,安装过程中可以看部**) 安装完之后,就开始配置我们的avd(Android Virtual Device),也就是Android的虚拟环境。点选,中红圈的图示 点选New(Test是我配置好的) 随便设定AVD name,建议如图设定 设定完成之后,就可以点选下图的三角号编译我们的程式了。

如何在Android Studio里设定Build Tool版本

一、修改Android Studio(以下简称AS)的记忆体配置 因为在汇入原始码时需要消耗大量记忆体,所以先修改IDEA_HOME/bin/studiovmoptions中-Xms和-Xmx的值。文件中使用的是748m, 可自行修改。 二、配置AS的JDK、SDK 在IDE中新增一个没有classpath的JDK, 这样可以确保使用原始码里的库档案 并将其作为要使用的SDK的Java SDK。如下图 三、生成汇入AS所需配置 一、修改Android Studio(以下简称AS)的记忆体配置

因为在汇入原始码时需要消耗大量记忆体,所以先修改IDEA_HOME/bin/studiovmoptions中-Xms和-Xmx的值。文件中使用的是748m, 可自行修改。

二、配置AS的JDK、SDK

在IDE中新增一个没有classpath的JDK, 这样可以确保使用原始码里的库档案

并将其作为要使用的SDK的Java SDK。如下图

三、生成汇入AS所需配置档案(ipr)

①编译原始码(为了确保生成了java档案,如Rjava;如果编译过,则无需再次编译)

②检查out/host/linux-x86/framework/目录下是否有idegenjar

如果idegenjar不存在,执行:

mmm development/tools/idegen/

在501的原始码中会生成resjava的资料夹,导致idegenjar执行时抛FileNotFoundException,这是idegen的程式码不够严谨造成的。

我的分享里有修改这个bug的patch,或者直接使用我分享的idegenjar。

③执行

development/tools/idegen/idegensh

等待出现类似下面的结果:

Read excludes: 5ms

Traversed tree: 44078ms

这时会在原始码的根目录下生成androidipr和androidiml两个IntelliJ IDEA(AS是基于IntelliJ IDEA社群版开发的)的配置档案

④在AS中开启原始码根目录下新生成的androidipr 全部

可以参考如下代码:EditText editText = (EditText) findViewById(Ridsearch_text);//给editText增加获得焦点的响应editTextsetOnFocusChangeListener(new OnFocusChangeListener(){@Overridepublic void onFocusChange(View v, boolean hasFocus){if(hasFocus){//获得焦点时,修改背景属性//Rdrawableedit_text_bg_focus为背景资源

在编辑框中已添加到对话框类WM_CHAR消息响应代码具体的对话框类AFX_MSG无效OnChar(UINT的nChar,UINT nRepCnt,UINT NFLAGS)宣布;并实现了假设你定义一个窗口类名是CDialogx,对应的变量名的编辑框是一个类,你会发现这样的片段BEGIN_MESSAGE_MAP(CPidManagerDialog,TransActiveDialog)END_MESSAGE_MAP()加入ON_WM_CHAR(间m_edit CPP文件)来实现AFX_MSG无效OnChar( UINT的nChar,UINT nRepCnt,UINT NFLAGS){性病::字符串str =(char)的的nChar; m_editSetWindowText(strc_str()); m_editUpdateWindow();}

WindowManager控件要慎用 除非要实现类似360悬浮框那种应用退出还存在的需求 可以用透明样式的activity 在serviced出该背景透明 activity屏蔽back按钮

1、首先自定义布局

2、把自定义布局放入dialog中显示

3、通过自定义布局查找对应的edittext组件

final View DialogView = a inflate ( Rlayoutloand, null);//1、自定义布局

//创建对话框

AlertDialog dlg = new AlertDialogBuilder(loandthis)

setTitle("登录框")

setView(DialogView)//设置自定义对话框的样式,2、自定义布局放入dialog中显示

setPositiveButton("登陆", //设置"确定"按钮

new DialogInterfaceOnClickListener() //设置事件监听{

public void onClick(DialogInterface dialog, int whichButton){editText1 =(EditText) DialogViewfindViewById(RideditText1);

editText2 =(EditText) DialogViewfindViewById(RideditText2);//3、过自定义布局查找对应的edittext组件

String id = editText1getText()toString();

String password = editText2getText()toString();

以上就是关于Android中EditText获得焦点后马上又失去了,可能是什么造成的呢全部的内容,包括:Android中EditText获得焦点后马上又失去了,可能是什么造成的呢、android ListView EditText 键盘 焦点、如何设定android studio 版本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9345970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存