TextView

1.下划线

textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线

2.单独做第一步,文字会出现锯齿,要加下面抗锯齿

textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG );

或者textView.getPaint().setAntiAlias(true);//抗锯齿

3.中划线

textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG);

4.xml文件中,android:onClick 设置无效

需要设置属性android:clickable="true"

5.This tag and its children can be replaced by one <TextView/> and a compound drawable

当我们用一个LinearLayout来实现一个ImageView和TextView在一起的时候,就会出现上面的提示。

根据提示来修改,可以使用TextView的drawableLeft等属性,代码如下

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_launcher"
android:drawablePadding="4dp"
android:gravity="center"
/>

6.在代码中改drawableLeft

Drawable drawable= getResources().getDrawable(R.drawable.drawable);
/// 这一步必须要做,否则不会显示.
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
myTextview.setCompoundDrawables(drawable,null,null,null);
//也或参考另一个函数
public void setCompoundDrawablesWithIntrinsicBounds (Drawable left, Drawable top, Drawable right, Drawable bottom)
//另一个函数
public void setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)

7.行距

android:lineSpacingExtra="3dp"

8.省略号

<!-- start,end,middle,marquee-->
android:ellipsize="end"
android:singleLine="true"

9.HTML

//注:font的size属性不起作用,如果需要改变大小,使用h1等的标签
textView.setText(Html.fromHtml("<h1><font color='#FF783F'>text</font></h1>");

10.获取行数

textview.post(new Runnable() {
@Override
public void run() {
int lineCount = textview.getLineCount();
}
});

11.android:drawablePadding

tv.setCompoundDrawablePadding(padInPx);

12.字体

android:fontFamily="sans-serif-thin"
EditText

1.android:imeOptions

该属性用于修改输入法键盘里的Enter的图标或者文字,比如值为“actionSearch”,图标为搜索的图片或者文字"Search"之类的,类似的还有"Send", "Go"等文字

2.android:inputType

该属性用于帮助输入法决定使用什么键盘,比如如果值是"textCapCharacters"时,会第一个字母大写。类似的还有"textPassword", "textEmail", "textPhonetic"

代码输入可以用editText.setInputType(EditorInfo.inputType);

默认是数字,但是可以输入其他,注意xml中不要设置inputType

et.setRawInputType(InputType.TYPE_CLASS_NUMBER);

3.光标显示最右边

editText.setSelection(text.length());

4.响应键盘事件

edittext.setOnKeyListener(new OnKeyListener() {

     @Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
  return true;
}
return false;
}
});

5.EditText不可编辑(android:editable已经过期)

<EditText ...
android:clickable="false"
android:cursorVisible="false"
android:focusable="false"
android:focusableInTouchMode="false">
</EditText>

代码设置

editText.setKeyListener(null);//设了就不能编辑

6.看官方demo时,发现editText有个很好的方法,setError()。可以弹出错误信息,用法如下

editText.setError(error);

7.自动换行

设置inputType会导致editText不会自动换行

8.获取焦点并弹出键盘

et.requestFocus();
et.setSelection(et.getText().toString().length());
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(et, 0); //若不会自动弹出键盘,看看AndroidManifest.xml是否有设置android:windowSoftInputMode="stateHidden"

9.最大字数

android:maxLength

10.字符串过滤

InputFilter

11.不自动获取焦点(不自动弹出键盘)

方案1
EditText的父Layout中,加入下面的两个属性即可
android:focusable="true"
android:focusableInTouchMode="true"
方案2
android:windowSoftInputMode="stateHidden"

12.插入内容到EditText光标所在位置

EditText mEditText = (EditText)findViewById(R.id.input);//EditText对象
int index = mEditText.getSelectionStart();//获取光标所在位置
String text="I want to input str";
Editable edit = mEditText.getEditableText();//获取EditText的文字
if (index < 0 || index >= edit.length() ){
edit.append(text);
}else{
edit.insert(index,text);//光标所在位置插入文字
}

13.响应imeOptions

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
if(actionId == EditorInfo.IME_ACTION_GO){
//TODO
return true;
}
return false;
}
});

14, InputFilter限制EditText内容长度

editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});  

15:digits:只能输入指定的字符

android:digits="abcdefg"

TextView & EditText的更多相关文章

  1. android入门系列- TextView EditText Button ImageView 的简单应用

    第一篇原创,其实自己就是一菜鸟,简单分享点基本知识吧.希望能有所帮助吧. TextView EditText Button ImageView 这几个控件可能是Android开发中最常用.最基本的几个 ...

  2. 使用TextView/EditText应该注意的地方,监听EditText,addTextChangedListener

    http://blog.csdn.net/huichengongzi/article/details/7818676 监听 EditText 控件: addTextChangedListener(ne ...

  3. 使用文本框TextView/EditText的开源库清单

    在实际的开发中TextView和EditText是非常基本的控件.这两个控件的使用也是十分简单.而TextView/EditText的功能其实也是非常强大,例如简单的图文就可以使用TextView配合 ...

  4. android内部培训视频_第三节 常用控件(Button,TextView,EditText,AutocompleteTextView)

    第三节:常用控件 一.Button 需要掌握的属性: 1.可切换的背景 2.9.png使用 3.按钮点击事件 1)  onClick 3) 匿名类 4) 公共类 二.TextView 常用属性 1.a ...

  5. Android开发8:UI组件TextView,EditText,Button

    版本:Android4.3 API18 学习整理:liuxinming TextView 概述 TextView直接继承了View(EditText.Button两个UI组件类的父类) TextVie ...

  6. 【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . TextView 相关类的继承结构 ...

  7. Android 简单登陆 涉及 Button CheckBox TextView EditText简单应用

    GitHub地址:https://github.com/1165863642/LoginDemo 直接贴代码<?xml version="1.0" encoding=&quo ...

  8. Android UI 设计之 TextView EditText 组件属性方法最详细解析

    . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/18964835 . TextView 相关类的继承结构 ...

  9. Android TextView,EditText要求固定行数自动调整TextSize

    最近项目有个需求要求文本最多显示3行,继续输入则字体变小,删除已经输入的文字,那么字体变大,不管变大变小都不能超过3行.网上怎么找也找不到相关的解决方案,自己动手,丰衣足食了! 说一下算法思路,后面给 ...

随机推荐

  1. 李洪强iOS开发之OC[018]对象和方法之间的关系

    // //  main.m //  18 - 对象和方法之间的关系 // //  Created by vic fan on 16/7/14. //  Copyright © 2016年 李洪强. A ...

  2. Android sd卡读取数据库

    先在 Manifest 里添加权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE&q ...

  3. autocapticalize和autocorrect

    首字母自动大写autocapitalize 在 iOS 中,用户可以手动开启「首字母自动大写」功能,这样输入英文的时候,首字母便会自动大写.但是,有些时候并不希望一直是首字母大写的.比如用户名这个字段 ...

  4. R语言学习笔记:向量化

    R语言最强大的方面之一就是函数的向量化,这些函数可以直接对向量的每个元素进行操作.例如: 对每个元素进行开方 > v<-c(4,3,8,16,7.3) > v [1]  4.0  3 ...

  5. 一步一步制作yaffs/yaffs2根文件系统(二)---安装BusyBox,构造/bin、/sbin、/usr、linuxr

    开发环境:Ubuntu 12.04 开发板:mini2440  256M NandFlash   64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3点此可下载 BusyBox版本: ...

  6. C#和.net之间的关系

    What is the difference between C# and .NET? In addition to what Andrew said, it is worth noting that ...

  7. UML中关系图解

    转自http://blog.csdn.net/duran1986/article/details/5573415 最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有 ...

  8. poj2823Sliding Window(线段树求最值)

    链接 裸线段树 这题时间卡的挺棒 #include <iostream> #include<cstdio> #include<cstring> #include&l ...

  9. 转: Linux 技巧:让进程在后台可靠运行的几种方法

    我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开 ...

  10. one-to-many many-to-one配置解释

    one-to-many放在某个文件的配置中,表示这个文件是ONE的一方, 同样的many-to-one放在某个文件的配置中,表示这个文件是many的一方.