博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TextView & EditText
阅读量:4325 次
发布时间:2019-06-06

本文共 3895 字,大约阅读时间需要 12 分钟。

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等属性,代码如下

 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.省略号

android:ellipsize="end"android:singleLine="true"

 9.HTML

//注:font的size属性不起作用,如果需要改变大小,使用h1等的标签textView.setText(Html.fromHtml("

text

");

 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.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"

 

方案2android: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"

 

 

 

 

 

转载于:https://www.cnblogs.com/baron89/p/3740194.html

你可能感兴趣的文章
笛卡尔遗传规划Cartesian Genetic Programming (CGP)简单理解(1)
查看>>
mysql 日期时间运算函数(转)
查看>>
初识前端作业1
查看>>
为啥程序会有bug?
查看>>
跨域技术
查看>>
JS里的居民们7-对象和数组转换
查看>>
计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
查看>>
python初体验
查看>>
配置vue,vue脚手架的应用(老版本)
查看>>
Start with PJSIP on windows
查看>>
【图像处理】ISP 图像传感器camera原理
查看>>
linux下防火墙iptables原理及使用
查看>>
Android 使用手机向手表安装任意.apk
查看>>
Android实时直播,一千行java搞定不依赖jni,延迟0.8至3秒,强悍移动端来袭
查看>>
无刷新上传图片 可以实时预览 选择图片后即自动上传,没有上传按钮
查看>>
DB2分区表删除和添加分区
查看>>
浅析C#中new、override、virtual关键字的区别
查看>>
jacoco+maven 初次使用覆盖率工具
查看>>
Linux笔记--Linux进程通信
查看>>
jpype测试报错,找不到类raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
查看>>