软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。...事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。...:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕 同时, 这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键 android:imeOptions...="actionNone" //输入框右侧不带任何提示 android:imeOptions="actionGo" //右下角按键内容为'开始' android:imeOptions="actionSearch..." //右下角按键为放大镜图片,搜索 android:imeOptions="actionSend" //右下角按键内容为'发送' android:imeOptions="actionNext"
主要属性就是android:imeOptions和android:imeActionLabel 但是android:imeActionLabel属性有的输入法没做,所以就没有效果,但是在模拟器上看得出来...使用maxLines来改变静态文本的布局(比如TextView需要singleLine效果),并使用inputType属性中的textMultiLine标志代替可编辑的文本视图(比如EditText需要...="wrap_content" android:hint="actionSend" android:imeOptions="actionSend" android...="wrap_content" android:hint="多条数据换行" android:imeOptions="actionSend" android...TAG, "actionid=======" + actionId); return true; } }); } } 这里只写了
EditText 为我们提供了一个属性 imeOptions 用来替换软键盘中 enter 键的外观,如actionGo 会使外观变成“前往”。...:imeOptions="actionGo" android:inputType="text" /> 常用的几个属性以及替换的文本外观: 属性 说明 对应静态变量 actionUnspecified...EditorInfo.IME_ACTION_NONE actionGo 去往 EditorInfo.IME_ACTION_GO actionSearch 搜索 EditorInfo.IME_ACTION_SEARCH actionSend...android:imeOptions="actionNext" 或者在代码中 mUserEdit.setImeOptions(EditorInfo.IME_ACTION_NEXT); 接下来设置回车按键的监听事件...上面的 actionId 对应的是 android.view.inputmethod.EditorInfo 中的常量。
有时候我们有一些特属的需要,要求只能在EditText中输入特定个数的字符,比如身份证号、手机号吗等。...六:Enter键图标的设置 软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。...事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。...actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND 效果: ?..." android:imeOptions="actionSearch"/> <Button android:id="@+id/btn_get_value" android:text
byte 进制转化 16进制 : 31 是 十进制 :49 ASCII:1; 在数据传输中,byte 是传输的基本形式,在java中转化为流进行数据传输,byte 是16进制的,再转...--sentences:仅第一个字母大写;words:每一个单词首字母大小、 用空格区分单词;characters:每一个英文字母都大写--> 8.改变输入法中回车按钮的执行 android:...imeOptions="actionNone" imeOptions有下面一些常用值--> actionSend执行 “发送”,对应常量EditorInfo.IME_ACTION_SEND;--> <!
我们已经创建了一个示例应用程序并将查看它的输出,然后我们将继续在 android studio 中创建一个新项目。...详细步骤 第 1 步:在 Android Studio 中创建一个新项目 要在 Android Studio 中创建新项目,以 Kotlin 作为编程语言为例。...第 2 步:在 build.gradle 文件中添加以下依赖项 下面是 Volley 的依赖项,我们将使用它从 API 获取数据。...="@color/white" android:ems="10" android:imeOptions="actionSend" android:importantForAutofill...override fun retry(error: VolleyError) { } }) queue.add(postRequest) } } 最终运行结果: 多年没开发安卓的我,也能在很短的时间不费吹飞之力搭建出来
详细步骤 第 1 步:在 Android Studio 中创建一个新项目 首先在 Android Studio 中创建新项目,选择 Kotlin 编程。...第 2 步:在 build.gradle 文件中添加以下依赖项 下面是 Volley 的依赖项,我们将使用它从 API 获取数据。...第三步:在AndroidManifest.xml文件中添加上网权限 导航到应用 > AndroidManifest.xml 并向其中添加以下代码。 android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...:drawableTint="@color/white" android:ems="10" android:imeOptions="actionSend" android:importantForAutofill
那么学习了这篇文章之后,开始尽情发挥你们的想象力开始搞事情吧~ 这一篇我们讲解 EditText的使用, EditText是一个输入框,在Android开发中是常用的控件。...改变输入法中回车按钮的显示内容 android:imeOptions="actionNone" imeOptions有下面一些常用值--> actionSend执行 “发送”,对应常量EditorInfo.IME_ACTION_SEND;--> <!...et.setInputType(InputType.TYPE_NULL); 5.显示隐藏密码 //在XML文件中设置 android:password="true" <!
FindViewById(Resource.Id.button3); //添加点击事件 btn3.Click += delegate { //do... } } 准备工作搞定...(暂时就这些..没了 哈哈哈) 我们进入下个环节.. 2.学会调用相册并取得选择的照片 同样,我们在点击事件中,修改代码如下: Intent i = new Intent...这里两个属性的意思是:Intent.ActionSend当用户的意图是发送操作的时候,类别设置为默认 这样我们就稍微过滤了一下意图.. 然后,我们把这个APP部署在模拟器上,如图: ?...然后我们编写原来的点击事件,来调用这个APP,代码如下: // 打开发送属性的应用 var ite = new Intent(Intent.ActionSend); ite.PutExtra(Intent.ExtraText...,所以下面,我们讲如何得到其他应用发过来的数据: App3中的代码如下: if (Intent.ActionSend == action) { //得到发过来的数据
去除TextView上下的padding viewpager的item点击事件 viewpager底层拦截了点击事件,所以点击事件写在adapter里面 android:imeOptions=“actionDone...() 验证用户输入 Context.getCacheDir() 获取缓存数据文件夹的路径 DateUtils.formatDateTime() 用来进行区域格式化工作,输出格式化和本地化的时间或者日期...android:weightSum=“3” 设置LinearLayout中的权重总数 android:fillViewport=“true” ScrollView设置全屏 SystemClock.sleep...android:includeFontPadding=“false” 去掉TextView内部padding 快捷键 提高开发效率 live template动态模板 提高开发效率 Android快速开发整理...(库、插件、常用网站) 提高开发效率 Github Android-Develop-Tips 欢迎补充
" android:background="@null" android:hint="请输入您的账号" android:imeOptions="actionNext" android..." android:background="@null" android:hint="请输入您的密码" android:imeOptions="actionDone" android...:textColor="@color/zj_blue" android:textSize="23sp" /> 主要是这几行 //账号输完 键盘中就可以跳转到下一个输入框 android:imeOptions...="actionNext" android:nextFocusForward="@+id/userpwd_edittext" //密码输完后 把焦点放到登录按钮上 android:imeOptions=...XML 再设置涟漪效果 但是实际发现效果是 涟漪的效果并不是圆角的 所以就变通了一下 背景只设置颜色 再在外层添加一个android.support.v7.widget.CardView login_button_bg_anim.xml
首先最简单的两个动画,写在了XML里面,当然也可以写到java中, 第一个in_animation.xml,第二个out_animation.xml, 第一步:Android里面已经有了TextSwitcher...Studio工程,配置环境; 第四步,将BaiduLBS_Android.jar加入环境变量(右键,Add As Library),并在app的build.gradle中的android中添加;...7.Android设置EditText默认取消焦点 在EditText的父控件中,添加两个属性即可, 如下, android:focusable="true" android:focusableInTouchMode..." android:imeOptions="actionDone" android:inputType="text" android:padding="4dp...Uri.parse("http://www.baidu.com")); //创建Intent型ClipData: ClipData.newIntent("Label", intent); 注意,上面三种方法只在
本文我们就来介绍一下 Android 12 中带来了哪些关于 Widget API 的更新,以及有哪些好用的工具可以让开发应用 Widget 变得更加出色。...Widget 工作原理 Widget 运行在一个名为 AppWidgetHost 的远端进程中,比如 Home Screen Launcher,也正因如此,它的运行受到了一些限制。...这样可使过渡更流畅,而且还能在不同的 Widget 之间保持一致。...如果您了解 Widget 的工作原理就会知道 Widget 在不同进程上工作,这使得处理简单的用户事件也变得困难,因为不在同一进程就代表您没有这个 Widget 的所有权,只能通过进程回调来处理各种事件...如下图所示,使用了 SizeMode.Single 选项的 Widget,无论其尺寸如何变化,其输出的尺寸大小永远不会得到变化,这是因为 Content 方法只被调用了一次,内容在尺寸发生变化时并没有得到刷新
但是,我们希望他能在我第一次getInstance()时才被真正的创建。这样,我们可以控制真正的类创建的时刻,而不是把类的创建委托给了类装载器。...在多线程中不能正常工作。...instance == null) { instance = new Singleton(); } return instance; } } 可在多线程中很好的工作...在Android开发中,在开源框架Android-Universal-Image-Loader的ImageLoader中就是使用《双重校验锁》的方式,所以在Android开发中,我们可以直接使用《双重校验锁...Android开发中,单例模式常会用于我们的对业务的封装类中,如:对网络请求的封装、图片加载的封装等。 单例模式使用的一个实际例子见下一篇。
本文讨论Android中的线程模型,以及应用如何通过产生worker threads来处理长时间操作以确保最佳的UI性能,而不是在主线程中处理这些任务。...若你执行长时间操作,你需要在其它的线程(后台线程或工作线程)中执行。...然而,它违反了UI单线程模型:Android UI工具集并不是线程安全的,它而且必须在UI线程中执行。所以以上代码中,ImageView在一个工作线程中被执行,这可能导致非常奇怪的问题。...注,AsyncTask实例必段在UI线程中创建并且只被执行一次。你可以阅读AsyncTask文档来了解更详细的使用。.... —— 确保只在UI线程中访问Android UI工具集 详情请见:http://developer.android.com/resources/articles/painless-threading.html
本文就总结了Java中单例模式的几种实现方式,并比较了它们的优缺点 1....对,饿汉式在Kotlin中,只需要一个object修饰符就行了,这就是Kotlin非常厉害的地方。...} } } Kotlin原生的,我们只改变了lazy的括号的值,mode = LazyThreadSafetyMode.SYNCHRONIZED就是锁的意思,英文好的童鞋一眼就明白了。...这种方式只能在1.5之后使用。...(但是Android官网不建议使用enums,占用内存多(Enums often require more than twice as much memory as static constants.)
Android Jetpack 中的架构组件可帮助您设计稳健、可测试且易维护的应用。...希望大家能在其中发现对自己的应用有帮助的全新功能以及改进: 分页库 Paging (分页) 使得开发者可以逐步、高效地加载大量数据,从而节省用户的电池和流量。...协程处理 在 Room 2.1 中,开发者可以通过 Kotlin 语言的 suspend 关键字让 Room 生成正确的协程代码,包括使用后台 dispatcher,这大大降低了开发者处理协程的工作量:...基本上,您可以像检索数据表一样检索数据库视图,但不能在其中插入数据。...您使用的 insert, update, delete 方法能返回 Completable, Maybe 和 Single。
【翻译】忘了RxJava吧——你需要的是拥抱Kotlin协程(Part 1/2) 2018-08-31 by Liuqingwen | Tags: Kotlin Android 翻译 |...>> fun searchRepositories(query: String) : Single> } 虽然 RxJava 是一个功能非常强大的库,但这并不意味着它就一定要作为管理异步工作的工具...to show repos", error) } )) } 这段代码看起来或多或少还是可以理解的,但是这里有几个隐藏的缺陷: 性能开销问题 这段代码的每一行都会生成一个内部对象(或者好几个)来完成这项工作...这看上去根本没有产生异步嘛 :) ,顺便说一下,在 RxJava 版本中,我们把订阅器添加到 compositeDisposable 中以方便在 onStop() 中调用它的 dispose() 方法。...在这里传递父对象是必须的,这是为了能在 onStop() 中取消 job 的同时取消协程运行。
前面简单学习了一些Android UI的一些基础知识,那么接下来我们一起来详细学习Android的UI界面基本组件。...(boolean) 设置该文本框的光标是否可见 android:digits setKeyListener(KeyListener) 如果该属性设为true,则该文本框对应一个数字输入方法,并且只接受那些合法字符...为输入法提供EditorInfo.actionLabel值 android:imeOptions setImeOptions(int) 当该文本框关联输入法时,为输入法指定额外的选项 android:includeFontPadding...该属性值为输入法的全限定类名 android:inputType setRawInputType(int) 指定该文本框的类型。该属性有点类似HTML中元素的type属性。...setHintTextColor(int) 设置文本框中提示文本的颜色 android:textColorLink setLinkTextColor(int) 设置文本框中链接的颜色 android:
再具体一点,Android中用到的线程池一共五种,它们都在Executors类中创建,分别是: 1、newCachedThreadPool : 创建一个无个数限制的线程池。...取值new LinkedBlockingQueue()即可,默认表示等待队列无穷大,此时工作线程等于最小线程个数;当然也可在参数中指定等待队列的大小,此时工作线程数等于总任务数减去等待队列大小...,且工作线程数位于最小线程个数与最大线程个数之间。...若计算得到的工作线程数小于最小线程个数,则工作线程数等于最小线程个数;若工作线程数大于最大线程个数,则系统会扔出异常java.util.concurrent.RejectedExecutionException...,并不会自动让工作线程数等于最大线程个数。
领取专属 10元无门槛券
手把手带您无忧上云