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

Android自由选择TextView的文字 博客分类: Android AndroidUP

相信很多人抱有这样的想法,很不幸,我也是。于是我就研究了一下EditText和TextView的代码,然后将这个问题解决了。      ...我们看一下EditText的源码,有一个Override的getDefaultEditable方法,看名字的意思是是否可编辑,这个方法直接返回true。...我们看看TextView的onTouchEvent、onTrackballEvent和onKeyEvent方法里面就明白了,在这些事件回调中调用了ArrowKeyMovementMethod里面的这些方法...这个问题,用过ContextMenu的都知道,view里面要使用ContextMenu,需要覆盖一个onCreateContextMenu方法,然后在里面创建ContextMenu的各个选项。...发现一个重要的方法getLayout(),然后获取一个Layout对象,通过x和y坐标知道当前字符串的offset位置。       那么,问题就可以完美的解决了。

2.4K10

Android自定义支付密码输入框,光标问题总结!

image.png 本文主要分析自定义验证码输入框过程中常被忽视的光标问题及个人的一点经验总结 onDraw方法一直被调用 我们在onDraw方法中添加Log日志,发现onDraw方法每间隔500ms...左右被调用一次 image.png 此处先给出解决办法: *当我们继承EditText自定义验证码输入框后,EditText自带的光标对我们来说不可见,已经没有意义,因此需要将其隐藏掉,防止onDraw...方法一直被调用 isCursorVisible = false 问题分析 问题1:是什么方法一直在不停的调用onDraw方法呢?...中Blink类的run方法每隔500ms会调用TextView中的invalidateCursorPath方法 问题3:如何自定义验证码输入框光标?...虽然EditText自带的光标已经不能满足我们的需求,但我们可以参考其光标闪烁的源码,然后修改一下来满足我们的需求,重点是修改光标绘制时的显示位置 在控件可见时开启光标闪烁,控件不可见时取消光标闪烁 override

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《Kotin 极简教程》第13章 使用 Kotlin 和 Anko 的Android 开发

    我们添加其依赖如下: // Butter Knife,专门为Android View设计的绑定注解,专业解决各种findViewById compile 'com.jakewharton...那么要如何才能在Kotlin的环境中使用ButterKnife呢? 在早些时候,ButterKnife的作者已经帮我们想好解决方案了,那就是——KotterKnife,见名知意。...也就是说,如果我们上面添加了KotterKnife的依赖,那么 Java 代码中同时使用 Butter Knife 注解的地方会绑定失败。不过这个问题,在后面的新版本中已经解决。...: 配置项 功能说明 app:rrvEmptyLayoutId 当列表为空的时候的显示页面 app:rrvIsRefreshable 是否支持下拉刷新,通过setOnRefreshListener 或...另外,Kotlin 的 Android 视图 DSL Anko帮我们从繁杂的 XML 视图配置文件中解放出来。

    3.6K30

    【Jetpack】DataBinding 架构组件 ⑤ ( 数据模型与视图双向绑定 | BaseObservable 实现双向绑定 | ObservableField 实现双向绑定 )

    , 对应的 TextView 组件中显示的内容也发生了相应的修改 ; 上述绑定方式可以理解为 单向绑定 , 因为 TextView 组件不能修改 , 只能显示 , 数据模型中的字段修改 , 可以改变...组件的内容可以自行进行修改 , 数据模型 可以发起对 EditText 组件的修改 , 同时 EditText 也可以发起对数据模型的修改 , 那么就会出现一个 双向绑定 的问题 ; 二、BaseObservable...build.gradle 构建脚本 中 , 在 " android / defaultConfig " 层级 , 配置 // 启用 DataBinding dataBinding..., 为 EditText 组件设置值时 , 也使用该函数设置值 ; 设置了 @Bindable 注解 , 只要 student 对象中的 name 发生了变化 , 绑定的组件中的内容就会发生变化 ;..., 引入 StudentViewModel 类型的对象 ; 在位 EditText 组件赋值时 , 需要使用 android:text="@={student.studentName}" 进行赋值 ,

    1.4K30

    Android RxJava 实战系列:联合判断

    本系列文章主要基于 Rxjava 2.0 接下来的时间,我将持续推出 Android中 Rxjava 2.0 的一系列文章,包括原理、操作符、应用场景、背压等等 ,有兴趣可以继续关注Carson_Ho...具体实现 原理 采用 RxJava 组合操作符中的combineLatest() 实现 关于组合操作符中的combineLatest() 的使用请看文章::Android RxJava:组合 /.../* * 步骤2:为每个EditText设置被观察者,用于发送监听事件 * 说明: * 1....传入EditText控件,点击任1个EditText撰写时,都会发送数据事件 = Function3()的返回值(下面会详细说明) * 3....TextUtils.isEmpty(name.getText()) ; // 除了设置为空,也可设置长度限制 // boolean isUserNameValid

    73420

    Android最佳性能实践(四)——布局优化技巧

    没错,这样修改当然是没问题的,不过这种修改方式会让所有引用titlebar的界面都受到影响,而如何你只希望让activity_main.xml这一个界面受影响的话,那么可以使用覆写属性的方式...那么我们如何才能让这些不常用的元素仅在需要时才去加载呢?Android为此提供了一种非常轻量级的控件,ViewStub。...下面我们就来学习一下如何使用ViewStub来完成仅在需要时才去加载布局的功能,目前profile.xml中只有一个EditText用于编辑信息,那么比如说我们还有另外三个不太常用的EditText,就可以将它们定义在另外一个布局文件当中...XML当中配置的profile_extra布局。...()得到的值也会是空。

    1.3K81

    Android开发笔记(一百四十八)自定义输入法软键盘

    3、系统软键盘会自动响应EditText的焦点变更事件,常常在意料之外突然之间蹦出来,弄得开发者要么剥夺EditText的焦点,要么强行关闭软键盘显示,但无论哪种方式都得开发者强行**,很不方便。...3、软键盘不是一个孤立的控件,它的按键动作需要实时在某个编辑框中把数字显示出来,所以在使用时还得给它绑定一个EditText,这样软键盘才知道我的按键要输出给这个EditText,而不是输出给那个EditText...,所以要在res/values/attrs.xml中补充下列属性配置: 时,要把按键结果显示在哪个EditText上。...(如0-9),它们在键盘映射xml中的keycode值必须配置为该字符的ASCII码 editable.insert(start, Character.toString((char) primaryCode

    2.7K30

    android横竖屏切换问题

    一、禁止横竖屏转换 Android横竖屏切换在手机开发中比较常见,很多软件在开发过程中为了避免横竖屏切换时引发不必要的麻烦,通常禁止掉横竖屏的切换, 通过在AndroidManifest.xml中设置activity...中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置,那样,进行中的游戏就不会自动重启了!...layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,横竖屏切换时程序为调用Activity的onCreate方法,从而加载相应的布局。...在Android工程的Mainfest.xml中配置Activity:android:configChanges="keyboardHidden|orientation",横竖屏切换之后就不会去执行OnCreat...super.onResume();   13. }   六、总结 总之,对于横竖屏切换的问题,统计了下,大家的解决办法是: ①不理会。。

    2.6K20

    安卓入门-第三章-安卓常用控件的使用方式

    design中显示的却是大写的BUTTON,这是由于系统会对Button中的所有英文字母自动进行大写转换,如果这不是你想要的效果,可以使用如下配置来禁用这一默认特性:加入描述语句:android:textAllCaps...那我们来看一看如何在界面上加入EditText吧,修改activity_main.xml中的代码,如下所示: EditText android:id="@+id/edit_text...可以看到,EditText中显示了一段提示性文本,然后当我们输入任何内容时,这段文本就会自动消失。  不过,随着输入的内容不断增多,EditText会被不断地拉长。...我们可以使用android:maxLines 属性来解决这个问题,修改activity_main.xml,如下所示: 加入描述性语句: android:maxLines="2"  这里通过android...这时你可能会问,旋转的进度条表明我们的程序正在加载数据,那数据总会有加载完的时候吧?如何才能让进度条在数据加载完成时消失呢?这里我们就需要用到一个新的知识点:**Android控件的可见属性。

    1.9K20

    TextInputLayout-Android M新控件

    在Google I/O 2015期间,安卓团队发布了一个崭新的兼容库,Design Support Library。它简直就是为解决这个问题而生的。...它显示了一个“登录”文字与两个EditText元素,一个是为用户名准备的,一个是为密码准备的。布局中还包含了一个触发登陆流程的按钮。背景颜色是扁平风格的灰色。...就如你知道的,这个属性允许你在EditText的内容为空的时候显示一个自定义的提示。一旦用户开始输入,hint会消失。这并不理想,因为用户丢失了他们输入信息的上下文提示。...需要的方法是setErrorEnabled和setError。 setError设置一个红色的错误消息,显示在EditText的下面。如果传入的参数为null,错误消息将清空。...现在我们定义了什么是错误的什么是正确的,也知道了如何获取EditText中的数据以及显示可能的错误,onClick方法的实现就很简单了。

    77920

    Android富文本开发

    如何在ViewGroup中添加view,删除view时给相应view和受影响的其他view添加动画,不太容易做。...如果当前获取焦点的EditText为空,直接在EditText下方插入图片,并且插入空的EditText 代码思路如下所示/** * 插入一张图片 * @param imagePath...为空,直接在EditText下方插入图片,并且插入空的EditText } else if (editStr1.length() == 0) { //如果光标已经顶在了...EditText的位置插入一个空的EditText,以便连续插入多张图片时,有空间写文字,第二个EditText下移 在空的EditText的位置插入图片布局,空的EditText下移。...android定义了一个属性,名字为windowSoftInputMode, 这个属性用于设置Activity主窗口与软键盘的交互模式,用于避免软键盘遮挡内容的问题。

    8.5K20

    Android消息推送:手把手教你集成小米推送

    前言 在Android开发中,消息推送功能的使用非常常见。 ? 为了降低开发成本,使用第三方推送是现今较为流行的解决方案。...今天,我将手把手教大家如何在你的应用里集成小米推送 该文档基于小米推送官方Demo,并给出简易推送Demo 看该文档前,请先阅读我写的另外两篇文章: 史上最全解析Android消息推送解决方案...背景:在这个初始化推送服务的过程中,是需要联系小米推送的服务器来申请reg id(即推送token)。 冲突:初始化过程可能失败:网络问题(没网or网络信号弱)、服务器问题导致初始化失败。...小米推送的Demo里并没有相关措施解决这个问题 解决方案:在初始化失败的情况下提供重试机制,直到初始化成功(可以通过检测是否已经拿到推送token来确定),问题解决的逻辑如下: ?...总结 相信大家已经非常了解如何在你的Android应用中集成小米推送 接下来,我会继续介绍具体如何在Android中关于推送的消息,请看 史上最全解析Android消息推送解决方案 Android

    4.7K20

    android短信验证码方案,Android之短信验证码

    接口文档:https://www.juhe.cn/docs/api/… 程序的界面如下所示: 实现步骤: 1.到聚合数据官网上申请短信验证SDK数据,生成AppKey,如下图所示: 2.配置工程,把相关的...value=”你的appkey” /> 4.在src中加入MyApplication类,并且在AndroidManifest.xml文件中将application的name属性设置为src中定义的MyApplication...(如android:name=”com.bear.smscaptcha.MyApplication”),在MyApplication的onCreate()方法中调用接口初始化: import com.thinkland.sdk.util.CommonFun...成功; 1 错误; 本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason 返回信息 成功或错误原因. result 返回结果,JSON格式.错误或者无返回值时为空...成功; 1 错误; 本地: -2 本地网络异常; -3 服务器网络异常;-4 解析错误;-5初始化异常 reason 返回信息 成功或错误原因. result 返回结果,JSON格式.错误或者无返回值时为空

    10.5K50

    android学习笔记----SQLite数据库

    onCreate()和onUpdate(),我们必须在自己的帮助类里面重写这2个方法,然后分别在这两个方法中实现创建、升级数据库逻辑。...那么如何让onUpdate()方法能够执行呢?我们这里的MyDBOpenHelper构造器第四个参数是当前数据库的版本号,之前传入的是1,现在只要传入一个比1大的数字即可运行onUpdate方法。...nullColumnHack:当values参数为空或者里面没有内容的时候,我们insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,我们要在这里指定一个列名,到时候如果发现将要插入的行为空行时...类型的数据initialValues为null,或者size时,就会再sql语句中添加nullColumnHack的设置。...传递NULL将导致包括所有行组,并且在不使用行分组时是必需的。     orderBy:如何对行进行排序,格式化为SQLOrderBy子句(不包括Order本身)。

    1K20

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    因为用户可能希望App会更加智能一些,比如用户希望编辑框提供关键词联想功能,又比如用户希望编辑框能够自我纠错等等;所以,Android从设计之初就努力尝试解决这些问题,先是自带了自动完成编辑框AutoCompleteTextView...对于处理密码输入的EditText来说,需要实现以下几项操作: 1、把默认的下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...; 3、把输入文字变成不可见,这里建议把文字颜色设为透明,而不是把文字大小设为0,因为若将大小设为0就无法自适应高度; 4、设置输入字符串的长度为6,设置长度操作可调用setFilters方法; 5、添加文本变更监听器...,队列长度为6; 2、每项密码文本控件都是一个TextView,文字居中对齐; 3、往布局上添加TextView队列时,在相邻的TextView之间要添加一条竖线,也就是宽度为1的灰色View; 4、依据转换规则...这个需求看起来很简单,只要强行给TextView队列调用setText方法即可,然而这不是安全的做法,因为它丢弃了CharSequence中的丰富信息。

    1.9K30

    Android EditText使用详解-包含很多教程上看不到的功能演示

    为”edit_text”的EditText,设置默认显示为本为“这是一个EditText”。。...EditText是TextView的子类,所以TextView的方法和特性同样存在于EditText中,具体的TextView的介绍可以参考上一节Android TextView小组件的使用–附带超链接和跑马灯效果...EditText为我们提供了android:hint来设置当EditText内容为空时显示的文本,这个文本只在EditText为空时显示,你输入字符的时候就消失了,不影响你的EditText的文本。。...在Android中没有专门的文本域组件,但是可以通过设置EditText的高来实现同样的文本域功能。修改main.xml如下: Android应用常用的功能,通过配置EditText的android:password=“true”就可以实现这一密码输入功能,修改main.xml如下: <?

    3.9K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券