输入控件是应用程序用户界面中的交互式组件。 Android 提供了多种可以在 UI 中使用的控件,例如按钮、文本字段、搜索栏、复选框、缩放按钮、切换按钮等等。
用户界面元素
View 视图是一个在屏幕上绘制用户可以与之交互的东西的对象,a1 是一个包含其他 View(和 ViewGroup)对象的对象,以定义用户界面的布局。
您在 XML 文件中定义布局,该文件为布局提供人类可读的结构,类似于 HTML。 例如,带有文本视图和按钮的简单垂直布局如下所示 −
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a Button" />
</LinearLayout>
Android UI 控件
Android 提供了许多 UI 控件,可让您为应用构建图形用户界面。
序号 | UI 控件 & 描述 |
1 | 此控件用于向用户显示文本。 |
2 | EditText 是 TextView 的预定义子类,包含丰富的编辑功能。 |
3 | AutoCompleteTextView 是一个类似于 EditText 的视图,除了它在用户键入时自动显示完成建议的列表。 |
4 | 用户可以按下或单击以执行操作的按钮。 |
5 | ImageButton 是一个 AbsoluteLayout,它使您能够指定其子项的确切位置。 这显示了一个带有图像(而不是文本)的按钮,用户可以按下或单击该按钮。 |
6 | 可由用户切换的 on/off 开关。 当向用户提供一组不互斥的可选选项时,您应该使用复选框。 |
7 | 带指示灯的 on/off 开关按钮。 |
8 | RadioButton 有两种状态:选中或未选中。 |
9 | RadioGroup 用于将一个或多个 RadioButton 组合在一起。 |
10 | ProgressBar 视图提供有关一些正在进行的任务的视觉反馈,例如当您在后台执行任务时。 |
11 | 允许用户从一组值中选择一个值的下拉列表。 |
12 | TimePicker 视图使用户能够以 24 小时模式或 AM/PM 模式选择一天中的时间。 |
13 | DatePicker 视图使用户能够选择一天中的日期。 |
创建 UI 控件
输入控件是应用用户界面中的交互式组件。 Android 提供了多种可在 UI 中使用的控件,例如按钮、文本字段、搜索栏、复选框、缩放按钮、切换按钮等等。
如前一章所述,视图对象可能具有分配给它的唯一 ID,它将在树中唯一标识视图。 XML 标记内的 ID 语法是 −
android:id="@+id/text_id"
要创建 UI Control/View/Widget(控件/视图/小部件),您必须在布局文件中定义一个 view/widget 并为其分配一个唯一 ID,如下所示 −
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a TextView" />
</LinearLayout>
然后创建一个 Control 对象的实例并从布局中捕获它,使用以下 −
TextView myText = (TextView) findViewById(R.id.text_id);