Android——TextView 和 EditText 控件,350 道 Android 面试真题分享
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(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:


资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
评论