写点什么

Android——TextView 和 EditText 控件,350 道 Android 面试真题分享

作者:嘟嘟侠客
  • 2021 年 11 月 27 日
  • 本文字数:3544 字

    阅读完需:约 12 分钟

textView.setLayoutParams(params);


layout = (LinearLayout) findViewById(R.id.LinearLayout1);


layout.addView(textView);


上面两种添加文本的方式,下面来看一下如何设置文本样式


可以直接在 activity_main.xml 中添加,例:


<TextView?


android:id="@+id/tv"


android:layout_width="match_parent"


android:layout_height="wrap_content"


android:textColor="#ff0000"


android:textSize="30dp"


android:autoLink="web"


android:singleLine="true"


android:focusable="true"


android:focusableInTouchMode="


《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享


true"


android:text="个人博客:https://blog.csdn.net/qq_40205116\n 电话:12345436123"


/>


android:textSize="20sp"设置字体大小单位 sp,设置宽高单位 dp


android:textColor="#ff0000"设置字体颜色 (只能为十六进制)


android:singleLine="true"单行显示


android:autoLink="web"web 链接设置超链接,all 所有


android:singleLine="true"


android:focusable="true"


android:focusableInTouchMode="true"跑马灯效果


还有很多样式,写在下面,这里就不一一举例了。


EditText 控件,输入框:


定义输入框:


<EditText


android:id="@+id/et"


android:layout_width="match_parent"


android:layout_height="wrap_content"?/>


设置样式:


<EditText


android:id="@+id/et1"


android:layout_width="match_parent"


android:layout_height="wrap_content"


android:inputType="textPassword"


android:maxLength="6"


android:hint="@string/possword" />


android:hint="@string/username"设置底纹(开始要到 strings.xml 中定义底纹文字,和定义文本一样)


android:singleLine="true"设置不换行


android:maxLines="6"设置文本最大输入项


android:inputType="textPassword"设置文本框类型


android:drawableLeft="@drawable/user"设置图片(图片放到 drawable-mdpi 文件夹中,可以不用写图片后缀)


可以在 drawable-mdpi 文件夹中新建 xml 文件设置文本框属性:


例:新建一个 edit_backgroud.xml 文件,代码如下


<shape xmlns:android="http://schemas.android.com/apk/res/android"?


<stroke?


android:width="1px"


<padding?


android:left="30px"


android:right="10px"


android:top="3px"


可以直接在 activity_main.xml 文件中直接引用(文件名)



定义按钮:


<Button?


android:id="@+id/button"


android:layout_width="match_parent"


android:layout_height="wrap_content"


android:text="登录"/>


设置按钮的点击事件获取文本框中的内容(获取 activity_main.xml 中 id 为 et 和 et1 的文本框值):


代码如下(MainActivity.java 中):


private EditText et;


private EditText et1;


private Button button;


private Button button1;


private OnClickListener listener = new OnClickListener(){


@Override


public void onClick(View v) {


//获取点击的 id


int id = v.getId();


switch (id) {


case R.id.button:


String username = et.getText().toString();


String pwd = et1.getText().toString();


//弹框


Toast.makeText(MainActivity.this, "用户名:"+username+"\n 密码:"+pwd, Toast.LENGTH_LONG).show();


break;


default:


break;


}


}


};


@Override


protected void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.activity_main);


et=(EditText) findViewById(R.id.et);


et1=(EditText) findViewById(R.id.et1);


//设置初始默认值


et.setText("张三");


//设置按钮监听器


button = (Button) findViewById(R.id.button);


button1 = (Button) findViewById(R.id.button1);


//设置按钮监听器


button1.setOnClickListener(new OnClickListener(){


@Override


public void onClick(View v) {


//弹框


Toast.makeText(MainActivity.this, "注册", Toast.LENGTH_SHORT).show();


}


});


button.setOnClickListener(listener);


}


TextView 控件其他样式:


a********ndroid:autoLink 设置是否当文本为 URL 链接/email/电话号码/map 时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)


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


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


android:capitalize 设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见 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 为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。


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 设置行间距。

总结

开发是面向对象。我们找工作应该更多是面向面试。哪怕进大厂真的只是去宁螺丝,但你要进去得先学会面试的时候造飞机不是么?


作者 13 年 java 转 Android 开发,在小厂待过,也去过华为,OPPO 等,去年四月份进了阿里一直到现在。等大厂待过也面试过很多人。深知大多数初中级 Android 工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。


这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司的面试题,把技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。


相信它会给大家带来很多收获:




资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图


当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。


本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

嘟嘟侠客

关注

还未添加个人签名 2021.03.19 加入

还未添加个人简介

评论

发布
暂无评论
Android——TextView和EditText控件,350道Android面试真题分享