Android_UI基础控件 与监听器

一、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="请输入密码(最多五个字)"
        />





阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页