Android学习--常见界面控件

本文详细介绍了Android中的简单控件如TextView、EditText和Button的基本属性及其使用,以及列表控件ListView的使用,重点讲解了数据适配器如BaseAdapter、SimpleAdapter和ArrayAdapter的原理和用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简单控件的使用

1、TextView控件

用于显示文本信息,它的常用属性如下表所示:

属性名称功能描述
android:id设置控件唯一标识
android:layout_width设置控件宽度
android:layout_height设置控件高度
android:layout_margin设置控件外边距
android:padding设置控件内边距
android:background设置控件背景图片
android:text设置文本内容
android:textColor设置文本颜色
android:textSize设置文字大小
android:textStyle设置字体,bold(粗体)、italic(斜体)、normal(正常)
android:gravity设置文本内容位置,center(居中显示)
android:maxLength设置文本最大长度,超出则不显示
android:lines设置文本行数,超出则不显示
android:maxLines设置文本最大行数,超出则不显示
android:lineSpacingExtra设置文本行间距
android:ellipsize

设置当文本超出控件规定范围时的显示方式

可设置“start、middle和end”,当文本超出范围时,在文本开始、中间或末尾加上省略号

android:drawableTop在文本顶部显示图像,这个图像资源可以放在res/drawable文件夹,用@drawable/文件名调用

Tips:Android中的控件样式除了可以使用XML属性设置,也可以使用Java中的方法设置。控件的每一个XML属性都有一个对应的Java方法,如:TextView控件的android:textColor属性对应Java中的setTextColor()方法。

2、EditText控件

EditText控件表示编辑框,它是TextView控件的子类,用户可以在此控件中输入信息。除了支持TextView控件的属性外,他还支持如下属性:

属性名称功能描述
android:hint设置控件中内容为空时显示的提示文本信息
android:textColorHint设置控件中内容为空时显示的提示文本信息的颜色
android:password使文本框中的内容显示为“●”
android:phoneNumber设置输入文本框中内容只能是数字
android:minLines设置文本的最小行数
android:scrollHorizontally设置文本信息超出控件宽度的情况是否出现横拉条
android:editable设置是否可编辑
3、Button控件

Button控件表示按钮,继承自TextView控件,既可以显示文本,又可以显示图片,同时也允许用户通过点击来执行操作。

(1)Button控件设置点击事件的三种方式

在布局文件中指定onClick属性的值

通过指定onClick属性来设置Button控件的点击事件,示例如下:

<Button
   ......
   android:onClick="click"/>

需要注意的是,在Activity中定义实现点击事件的方法名必须与onClick属性的值保持一致。

使用匿名内部类

在Activity中,可以通过使用匿名内部类的方式为Button控件设置点击事件,示例如下:

btn.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view){
    //实现点击事件的代码
  }
});

上述代码通过为Button控件设置setOnClickListener()方法实现对Button控件点击事件的监听。setOnClickListener()方法传递的参数是一个匿名内部类、如果监听到Button控件被点击,那么程序会调用匿名内部类中的onClick()方法实现Button的点击事件。

使用Activity实现OnClickListener接口

示例代码如下:

public class Activity extends AppCompatActivity implements View.OnClickListener{
  @Override
  protected void onCreate(Bundle savedInstanceState){
    ......
    btn.setOnClickListener(this);//设置Button控件的监听事件
  }
  @Override
  public void onClick(View view){
    //实现点击事件的代码
  }
}

在上述代码中,Activity通过实现View.OnClickListener接口中的onClick()方法来设计点击事件。需要注意的是,在实现onClick()方法之前,必须调用Button控件的setOnClickListener()方法设置点击监听事件,否则对控件的点击不会生效。

前两种方法适合在Button控件较少的情况下使用,如果界面上Button控件较多,可使用第三种。

二、列表控件的使用

适用于在一个页面中展示多个条目,并且每个条目的布局风格一致。

 1、ListView控件使用

常用属性列表如下表所示:

属性名称功能描述
android:listSelector当条目被点击后,改变条目的背景颜色
android:divider设置分割线的颜色
android:dividerHeight设置分割线的高度
android:scrollbars是否显示滚动条
android:fadingEdge去掉上边和下边的黑色阴影
2、常用数据适配器

在为一个ListView控件添加数据时会用到数据适配器。数据适配器(Adapter)是数据与视图之间的桥梁,它类似于一个转化器,将复杂的数据转换成用户可以接受的方式进行呈现,接下来,介绍几种常见的适配器。

(1)BaseAdapter

BaseAdapter是基本的数据适配器。它实际上是一个抽象类,通常在自定义数据适配器时,自定义的数据适配器会继承BaseAdapter,该类有4个抽象方法,根据这几个抽象方法对ListView控件进行数据适配。四个抽象方法如下表所示:

方法名称功能描述
public int getCount()获取Item条目的总数
public Object getItem(int position)根据position(位置)获取某个item的对象
public long getItemId(int position)根据position(位置)获取某个item的ID
public View getView(int postion,View convertView,ViewGroup parent)获取相应position对应的intent视图,position是当前Item的位置,convertView用于复用旧视图,partent用于加载XML布局文件
(2)SimpleAdapter

SimpleAdapter继承自BaseAdapter,实现了BaseAdapter的四个抽象方法并将方法进行封装。因此在使用SimpleAdaper进行数据适配时,只需要在构造方法中传入相应的参数即可。SimpleAdapter的构造方法的具体信息如下:

public SimpleAdater(Context context,List<? extends Map<String,?>> data,
                                                      int resource,String[] from,int[] to)

上述5个参数含义如下:

context:上下文对象。

data:数据集合。data中的每一项对应ListView控件中条目的数据。

resource:Item布局的资源id。

from:Map集合中的key值。

to:Item布局中对应的控件。

(3)ArrayAdapter

ArrayAdapter也是BaseAdapter的子类,用法与SimpleAdapter类似,开发者只需要在构造方法里面传入相应的参数即可。ArrayAdapter通常用于适配TextView控件,例如Android中的Setting(设置菜单)。ArrayAdapter有多个构造方法,具体信息如下:

public ArrayAdapter(Context context,int resource);
public ArrayAdapter(Context context,int resource,int textViewResourceId);
public ArrayAdapter(Context context,int resource,T[] objects);
public ArrayAdapter(Context context,int resource,int textViewResourceId,T[] objects);
public ArrayAdapter(Context context,int resource,List<T> objects);
public ArrayAdapter(Context context,int resource,int textViewResourceId,List<T> objects);

context:Context上下文对象。

resource:Item布局的资源id。

textViewResourceId:Item布局中相应TextView控件的id。

T[] objects:需要适配数组类型的数据

List<T> objects:需要适配List类型的数据。

在创建数据适配器后,可通过ListView控件的setAdapter()方法添加数据适配器,如将继承BaseAdapter的MyBaseAdapter实例添加到ListView控件中,示例代码如下:

ListView mListView=(ListView) findViewById(R.id.lv);//初始化ListView控件
MyBaseAdapter mAdapter=new MyBaseAdapter();//创建MyBaseAdapter实例
mListView.setAdapter(mAdapter);//设置数据适配器到ListView控件上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值