5、常用控件 TextView与EditText

案例一
1. 事件监听(三种写法)
1.1 标签上直接绑定监听方法
public void xxx(View view)

1.2 创建监听器对象,组件再绑定监听器对象
1.2.1 匿名内部类

1.2.2 使用匿名内部类并定义成全局的属性
  1. 文本框(TextView)
    2.1 简介
    TextView直接继承View,作用就是在界面上显示文本(类似于Swing中的JLabel),同时它还是EditText、Button两个UI组件类的父类。
    另外Android关闭了它的文字编辑功能,如果想编辑内容,则可以使用EditText。

    <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="啊哈哈"
    android:textSize="20dp"/>

    2.2TextView常用属性
    2.2.1 text
    2.2.2 autoLink
    2.2.3 singleLine(已过时,现在应为:android:lines)
    2.2.4 lines
    2.2.5 minLines
    2.2.6 textColor
    2.2.7 textSize
    2.2.8 textStyle
    字体风格粗体、斜体
    2.2.9 backgroud
    设置背景,可以是颜色或图片
    2.2.10 drawableXX
    设置文本的icon
    2.2.11 ellipsize 当文字长度超过textview宽度时的显示方式
    android:ellipsize=”start” 省略号显示在开头 “…pedia”
    android:ellipsize=”end” 省略号显示在结尾 “encyc…”
    android:ellipsize=”middle” 省略号显示在中间 “en…dia”
    android:ellipsize=”marquee” 以横向滚动方式显示(另外还需要设置其它三个属性,否则不滚动,即必须让该控件获得焦点)

案例二 常用编辑框

  1. 编辑框(EditText)
    3.1 简介
    EditText和TextView非常相似,它与TextView共用了绝大总分XML属性和文法,
    二者最大区别在于:EditText可以接受用户输入。
    注:新建输入框引入外形资源调节样式时,要点击 res 新建
    外形资源命名:main_et_shape/main_et_selector
    type:Drawable
    element:shape/selector
    Android里命名不支持大写

    3.2 常用属性
    3.2.1 inputType
    它是EditText组件最重要的属性,它相当于HTML中标签的type属性,用于EditText指定输入组件的类型。
    常用取值有:number|numberPassword|date|phone
    3.2.2 hint:提示字符信息

案例三:椭圆形、背景渐变的文本框
4. Android资源
4.1 什么是资源
指在res文件夹下的xml文件,每一种类型的xml文件都对应了一种资源。
例如:外形资源(shape)、尺寸资源(dimension)、颜色资源(color)等
4.2 尺寸资源和颜色资源放res/values目录下
4.3 *.xml(文本框的外形资源)可放到drawable目录下
4.4 设置渐变色与背景色只能取其一,后面会覆盖前面的

案例四:根据获得/失去焦点边框变色编辑框
5. 选择器
5.1 作用:根据控件状态显示不同样式
5.2 Item: 指定不同状态下控件显示哪个样式

在shape里设置颜色
       <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <corners android:radius="60dp"></corners>
        <solid android:color="@color/aqua"></solid>     <!--EditText的背景颜色-->
        <stroke android:color="@color/darkorchid" android:width="3dp"></stroke>     <!--边框颜色-->
    </shape>
调用
  <EditText
    android:id="@+id/main_et_result"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/main_et_shape"
    android:hint="结果" />

选中特效
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/main_et_shape" android:state_focused="true"></item>    <!--选中调用的颜色-->
        <item android:drawable="@drawable/main_et_shape2" android:state_focused="false"></item>  <!--未选中时的颜色-->
    </selector>
调用选中特效
<EditText
    android:id="@+id/main_et_result2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/main_et_selector"
    android:hint="结果2"
    />

核心点:
1、点击事件的添加

 方法一:
        activity_main.xml里:
            1.用流式布局(LinearLayout)
                 <Button
                    android:id="@+id/main_btn_btn1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:onClick="doSubmit" />
        activity.java里:
           1.定义全局变量:main_et_result
                private EditText main_et_result; 
           2.找到控件
            protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_main)
                    main_et_result=findViewById(R.id.main_et_result);  //通过ID找到控件  
            }
         3.写方法
                public void doSubmit(View view) {   //view  相当于事件源
                    int id = view.getId();  //获取id
                    switch (id){
                        case R.id.main_btn_btn1:
                            main_et_result.setText("btn1");   //定死输出
                            break;
                        case R.id.main_btn_btn2:
                            main_et_result.setText("btn2");
                            break;
                    }
                }

    方法二:
        activity_main.xml里:
             <Button
                android:id="@+id/main_btn_btn3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                />
         activity.java里:
             1.private Button main_btn_btn3;
             2. protected void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.activity_main);
                        main_btn_btn3=findViewById(R.id.main_btn_btn3);
                        main_btn_btn3.setOnClickListener(new View.OnClickListener(){
                        public void onClick(View view){
                        main_et_result.setText("btn3");
                  } 

2、输入框引入外形资源调节样式

扫描二维码关注公众号,回复: 3584636 查看本文章

猜你喜欢

转载自blog.csdn.net/x_b_z123/article/details/82593584