一、TextView
- 当文本内容为电话、邮箱、或者特定格式时
- 当文本内容超出控件宽度时
- 当需要更改文本字体类型与风格时
1、id 控件的唯一识别方式 使用id的一般是用户或后期运行时需要改变的控件
2、背景颜色 background 可以在value文件夹中的color.xml中添加颜色
举个栗子
<color name="white">#FFFFFF</color><!--白色 -->
<color name="ivory">#FFFFF0</color><!--象牙色 -->
<color name="lightyellow">#FFFFE0</color><!--亮黄色-->
3、背景为图片,将图片复制到drawable文件夹中使用 其他的drawable-xxxx文件夹中的图片是与本手机适配的图片
android:background="@drawable/background"
4、text中 value中的strings.xml
<string name="more">文字太多了需要用string.xml</string>
5、textSize Google推荐使用sp
6、autoLink 可以设置文本类型eg:电话号码 邮箱 网络连接,需要额外设置属性
web email phone map(网络经纬度 中国暂时无法使用,google地图在中国无法使用)
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoLink="web"
android:text="网络地址:http://www.baidu.com"/>
特殊文本颜色在manifests中的theme中,也就是在styles中的colorAccent
7、drawableLeft/Top/Right/Bottom
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="皮皮在我周围"
android:gravity="center"
android:drawableBottom="@drawable/ic_launcher_foreground"
android:drawableLeft="@drawable/ic_launcher_foreground"
android:drawableRight="@drawable/ic_launcher_foreground"
android:drawableTop="@drawable/ic_launcher_foreground"/>
8、省略号与跑马灯
lines="3" textview就可以显示三行
singleline="true" 只显示一行(新版本不推荐使用但是不影响效果)
ellipsize="start/middle/end/marquee(跑马灯)" 在哪添加省略号
textIsSelectable="true" 允许获取焦点
marqueeRepeatLimit="marquee_forever" 无限循环播放
9、TextView字体风格与类型
textStyle="bold|italic" 粗体+斜体
typeface="sans/serif/monospace" 无衬线字体/细体/等宽字体
二、Button
Button是TextView的子类
监听器
添加Button控件设置id
在java代码中需要显示该控件的Activity中
通过setContentView,装载Button所在的XML布局
通过Button的id在Activity中获取到Button的对象
findViewById返回View 向下转型为Button
为button 添加监听事件
成员内部类和匿名内部类最常用
a.成员内部类
public class MainActivity extends AppCompatActivity {
private Button button01;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button01 = (Button)findViewById(R.id.btn01);
//生成监听器类的对象
MyButtonListener myButtonListener = new MyButtonListener();
//为按钮添加监听器
button01.setOnClickListener(myButtonListener);
}
class MyButtonListener implements View.OnClickListener{
@Override
public void onClick(View v) {
//该方法将在绑定的按钮被点击时调用 v为对象绑定的控件
//吐司使用方法:Toast 1、当前界面对象(上下文环境)2、显示内容、吐司显示时长
Toast.makeText(MainActivity.this, "按钮被点击了",Toast.LENGTH_SHORT).show();
}
}
}
b.匿名内部类
public class Main2Activity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btn =findViewById(R.id.btn01);
btn.setOnClickListener(new View.OnClickListener() { //new了一个类实现了OnclickListener接口的类的对象并重写了onClick方法
@Override
public void onClick(View v) {
Toast.makeText(Main2Activity.this, "按钮被点击了!!!",Toast.LENGTH_SHORT).show();
}
});
}
}
c.Activity
public class Main3Activity extends AppCompatActivity implements View.OnClickListener {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
btn = findViewById(R.id.btn01);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(Main3Activity.this,"Activity直接实现接口",Toast.LENGTH_SHORT).show();
}
}
d.XML
xml布局文件中为button添加onclick属性
在对应的Activity中创建一个以onclick属性值为名字的方法
a.修饰符为public
b.返回值为void
c.传入的参数为View类型
public void myButtonListener(View v){ //以XML中的onClick属性值为名字的方法
Toast.makeText(Main4Activity.this,"XML",Toast.LENGTH_SHORT).show();
}
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="myButtonListener"/>
多个按钮使用一个监听器
创建内部类实现OnClickListener接口
onClick方法中,使用switch(R.id.xxx)方式区别当前被点击的按钮是哪个
在对相应的按钮做不同处理
public class Main5Activity extends AppCompatActivity {
private Button btn01,btn02;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main5);
btn01=findViewById(R.id.btn01);
btn02=findViewById(R.id.btn02);
}
class ButtonsListener implements View.OnClickListener{
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn01:
Toast.makeText(Main5Activity.this,"点击了第一个按钮",Toast.LENGTH_SHORT).show();
break;
case R.id.btn02:
Toast.makeText(Main5Activity.this,"点击了第二个按钮",Toast.LENGTH_SHORT).show();
break;
}
}
}
}
三、EditText
inputType中有各种格式
Hint为提示字
maxLength限制字数
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:text="这里填写密码"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:textColorHint="@color/colorPrimary"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLength="5"
android:hint="请输入密码(最多五个字)"
/>