Android常用控件(更新中)

最近在学Android,前后算起来都半个月了,可还是没什么进步,都是些控件。发现控件虽不难,但是很多,脑子一团凌乱,因此整理了一下,以便使用。

1. TextView

作用:显示文本框。
常用属性:

android:id  --控件的id
android:layout_width  --控件宽度
android:layout_height  --控件高度
android:text  --文本内容
android:textSize  --字体大小
android:textColor  --字体颜色
android:background  --控件背景(格式:#123def,或用图片)
android:singleLine="true" --让这个 TextView 只能单行显示
android:padding="10dp" --给控件的周围加上补白,不让文本紧靠边缘
android:ellipsize="end" --设定文本内容超出控件宽度时,文本的缩略方式(这里指定成 end 表示在尾部进行缩略)

注意:若在XML中引用一个id,则使用@id/id_name语法;而若在XML中定义一个id,则要使用@+id/id_name语法。

2. EditText

作用:编辑文本框。
常用属性:

android:id  --控件的id
android:layout_width  --控件宽度
android:layout_height  --控件高度
android:text  --文本内容
android:textSize  --字体大小
android:textColor  --字体颜色
android:background  --控件背景
——————前面同TextView——————————
android:hint --提示文本
android:inputType --输入文本类型
android:maxLines --最大行数

TextView和EditText如图所示:
Android常用控件(更新中)_第1张图片

3. ImageView

作用:显示图片
常用属性:

android:src="@drawable/ic_launcher"  --ImageView内容图片(引号内为文件路径)
android:background="@drawable/ic_launcher"  --ImageView背景图片
android:background="#ff0ff0"  --ImageView背景颜色
android:scaleType="fitXY" --让这张图片填充满整个控件

注:除在XML文件中指定图片资源外,还可在代码区更改图片。
示例代码:

imageView.setImageResource(R.drawable.zoro);

4. Button

作用:按钮
常用属性:

5. ImageButton

作用:图片按钮
常用属性:

< ImageButton
        android:id= "@+id/imageButton1"
        android:layout_width= "wrap_content"
        android:layout_height= "wrap_content"
        android:src= "@drawable/ic_launcher"
        android:background= "#000000" />

注:
1. ImageButton的android:text属性不能直接赋值。
2. Button 和 ImageButton 都有一个 onClick 事件,通过自身.setOnClickListener(OnClickListener)方法添加点击事件。
3. 实现监听的3种方式。

6. ProgressBar

作用:进度条。
常用属性:

"visible" --可见性(默认显示,可以不写)
      android:id= "@+id/progressBar1"
      android:layout_width= "wrap_content"
      android:layout_height= "wrap_content"
      style= "?android:attr/progressBarStyleHorizontal" --设置进度条风格为水平
      android:max="100" --给进度条设置最大值
        />

注:android:visibility,控件的可见性(所有控件都有的属性)。有三种状态,即:
1. visible: 可见,默认状态
2. invisible: 不可见,但仍占据原来位置
3. gone: 不可见,且不占用空间

此外,还可通过代码设置控件可见性。用setVisibility()方法,可以传入View.VISIBLE、View.INVISIBLE和View.GONE三种值。(getVisibility()方法可获取当前状态)

7. AlertDialog

作用:当前界面弹出对话框。常用于弹出一些非常重要的内容或警告信息。

如图所示:
Android常用控件(更新中)_第2张图片

示例代码:

AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("This is a Dialog");
dialog.setMessage("Sure to delete ?");
dialog.setCancelable(false); //
dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {          
    @Override
    public void onClick(DialogInterface dialog, int which) {
        //添加事件处理
    }
});
dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {          
    @Override
    public void onClick(DialogInterface dialog, int which) {
        //添加事件处理
    }
});
dialog.show(); //注意要show出来

上述代码也可以一句话写出来,如下所示:

new AlertDialog.Builder(TestAlertDialog.this).setTitle("Alert Information")
                .setMessage("Are you ready?")
                .setPositiveButton("Yes", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(TestAlertDialog.this, "Let's begin!", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("No", new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        finish();
                    }
                }).setCancelable(false).show();

如下所示:

Android常用控件(更新中)_第3张图片

此时,点击“Yes”会在屏幕显示”Let’s begin!”;而点击“No”则退出程序。

注意:
1. AlertDialog无需添加XML布局文件,直接在代码区调用即可。
2. 此处不能用 Back 键关闭对话框;若 setCancelable 为 true 或者不设置,则可以用 Back 键关闭对话框。

8. ProgressDialog

作用:和AlertDialog类似,在当前界面弹出一个对话框。区别是会在对话框显示一个进度条,一般是操作比较耗时,让用户耐心等待。

如图所示:
Android常用控件(更新中)_第4张图片

示例代码:

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("This is a ProgressDialog");
progressDialog.setMessage("Please waiting...");
progressDialog.setCancelable(true); //可通过Back键取消掉
progressDialog.show();

注意:progressDialog.setCancelable(false):表示 ProgressDialog 不能通过 Back 键取消掉。此刻就要在代码中做好控制,当数据加载完成后必须要调用 ProgressDialog 的dismiss()方法来关闭对话框, 否则 ProgressDialog 将会一直存在。

9. AutoCompleteTextView

作用:自动匹配字符(常用于搜索框输入提示)
属性:

android:completionThreshold="3" --设置输入多少字符开始匹配 (即阈值)

AutoCompleteTextView 示意图:
Android常用控件(更新中)_第5张图片

10. MultiAutoCompleteTextView

作用:多选择的自动匹配字符。
可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配,可用于发邮件、短信时选择多个联系人。
属性:

android:completionThreshold="3" //设置输入多少字符开始匹配 (同AutoCompleteTextView )

macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); //设置逗号分隔符

多选择自动匹配字符如图所示:
MultiAutoCompleteTextView

11. ToggleButton

作用:切换按钮,点击可产生切换效果

如图所示:
Android常用控件(更新中)_第6张图片
点击后:
Android常用控件(更新中)_第7张图片

注:点击按钮可使文字和图片来回切换。

常用属性:

android:checked="false" --选中textOff(反之选中textOn)
android:textOn= "on" --设置On状态
android:textOff= "off" --设置Off状态

事件监听器:OnCheckedChangeListener

12. CheckBox

作用:多选框

如图所示:
Android常用控件(更新中)_第8张图片

常用属性:

android:checked="true/false"    --默认false,即未选中(可以不写)

13. RadioButton & RadioGroup

作用:常用作性别选择等多选一选框,且点击选择后不能取消选择状态。

如图所示:
Android常用控件(更新中)_第9张图片

RadioButton & RadioGroup区别与联系:

  1. RadioButton表示一个单选框,而RadioGroup是可以容纳多个RadioButton的容器
  2. 每个RadioGroup中的RadioButton同时只能有一个被选中
  3. 不同RadioGroup中的RadioButton互不相干
  4. 一般情况,一个RadioGroup中至少有2个RadioButton
  5. 一般情况,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置

参考:Android控件系列之RadioButton&RadioGroup

注:RadioGroup中的RadioButton状态改变既可以通过RadioButton来监听也可以通过RadioGroup来监听。

RadioGroup 和 RadioButton 的点击事件具体用法见 RadioGroup 和 RadioButton 点击事件 。

14. Intent

作用:实现页面之间的跳转。
感觉该控件略复杂,因此记在了另外一篇笔记 Intent控件 上。

15. ListView

作用:显示列表

如图所示:
Android常用控件(更新中)_第10张图片

注:这是图文类型,也可以使用纯文字类型列表。

监听器:OnItemClickListener,OnScrollListener

Adapter

即适配器。
作用:把复杂的数据(数组、链表、数据库、集合等)填充在指定视图界面上,是连接数据源和视图界面的桥梁。

1. ArrayAdapter

数组适配器:绑定格式单一的数据。
数据源类型:集合或数组。

示例代码:

String[]arr_data = {"曹操", "刘备", "孙权"}; //定义数据源

private ArrayAdapter arr_adapter;
arr_adapter = new ArrayAdapter(MainActivity.this,  android.R.layout.simple_list_item_1 , arr_data);
//参数:ArrayAdapter(上下文,当前ListView加载的每一个列表项对应的布局文件,数据源);

listview.setAdapter(arr_adapter); //添加适配器(建立ListView和数据之间的关联)
// android.R.layout.simple_list_item_1: Android 内置的布局文件,里面只有一个 TextView

2. SimpleAdapter

简单适配器:绑定格式复杂的数据。
数据源类型:只能是特定泛型的集合。

示例代码:

private SimpleAdapter simp_adapter;
        /*
         *    SimpleAdapter参数:
         *    context: 上下文
         *    data:  数据源(List>data)一个Map所组成的List集合
         *             每一个Map(键-值对)都会对应ListView中的一行
         *    resource:列表项的布局文件
         *    from:Map中的键名 
         *    to: 绑定数据视图中的ID,与from对应
         */
simp_adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img", "txt"}, new int[]{R.id.img1, R.id.txt1});

16. DatePicker & TimePicker

作用:日期/时间 选择器

//获取日历的一个对象
cal = Calendar.getInstance();
year = cal.get(Calendar.YEAR); //获取年
month = cal.get(Calendar.MONTH) + 1; //获取月份(注意:此处月份从0开始,因此需要加1)
day = cal.get(Calendar.DAY_OF_MONTH);
hour = cal.get(Calendar.HOUR_OF_DAY);
minute = cal.get(Calendar.MINUTE);

1. DatePicker

作用:日历选择器

DatePicker实现日历选择器,示例代码:

datePicker.init(year, month, day, new OnDateChangedListener() {

        @Override
        public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            setTitle(year + "." + (monthOfYear+1) + "." + dayOfMonth); //设置标题
        }
});

注:
1. 当用户更改了DatePicker里的年月日时,OnDateChangedListener监听器的OnDateChanged()事件触发。
2. 当用户更改了TimePicker里的年月日时,OnTimeChangedListener监听器的OnTimeChanged()事件触发

2. TimePicker

作用:时间选择器

TimePicker实现时间选择器,示例代码:

timePicker.setOnTimeChangedListener(new OnTimeChangedListener() {

        @Override
        public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
            setTitle(hourOfDay + ":" + minute);
        }
});

注意:
1. DatePicker以init()方法初始化年月日及 OnDateChangedListener()事件;
而TimePicker则以setOnTimeChangedListener()事件来处理操作。
2. 此二者都是直接在屏幕上显示,而下面两个dialog则是以对话框形式显示的。

17. DatePickerDialog & TimePickerDialog

作用:实现 日期/时间 选择对话框

1. DatePickerDialog

作用:实现日期选择对话框
DatePickerDialog实现日期选择对话框,示例代码:

new DatePickerDialog(this, new OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            setTitle(year + "." + (monthOfYear+1) + "." + dayOfMonth);
      }
}, year, cal.get(Calendar.MONTH), day).show(); //勿忘show()

注:当用户更改了DatePickerDialog的年月日时,OnDateSetListener监听器的OnDateSet()事件触发。

2. TimePickerDialog

作用:实现时间选择对话框
TimePickerDialog实现时间选择对话框,示例代码:

new TimePickerDialog(this, new OnTimeSetListener() {

        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            setTitle(hourOfDay + ":" + minute);
        }
}, hour, minute, true).show(); //最后一个参数:是否24小时制

注:当用户更改了TimePickerDialog的年月日时,OnTimeSetListener监听器的OnTimeSet()事件触发。

18. GridView

作用:页面布局(网格视图)
如图所示:
Android常用控件(更新中)_第11张图片
常用属性:

android:numColumns="auto_fit" --每一行显示多少列(auto_fit自动适应)
android:horizontalSpacing= "ndp" --两列之间的间距
android:verticalSpacing= "ndp" --两行之间的间距

监听器事件:OnItemClickListener
数据源类型:SimpleAdapter

注:部分图片来自慕课网视频截图。
PS:花些时间整理一下还是很有用的,既能回顾梳理以前的知识,也能帮助日后查询。而且,总结中还发现不少问题。

你可能感兴趣的:(Android,基础知识,控件,android)