android.widget包介绍
目录
android.widget包介绍
android.widget
是 Android 开发中用于构建用户界面(UI)的核心包之一。它包含了大量的 UI 控件(如按钮、文本框、列表等),这些控件通常被称为“小部件”(Widget)。
android.widget
包中的类大多继承自
android.view.View
,因此它们都具备视图的基本特性。
以下是
android.widget
包中一些常用类的详细介绍:
1. 常用控件
(1) Button
用于触发用户交互的按钮。
继承自
TextView
。常用属性 :
android:text
:设置按钮文本。android:onClick
:指定点击事件的处理方法。
示例 :
import android.widget.Button; Button button = findViewById(R.id.button); button.setOnClickListener(v -> { Toast.makeText(this, "Button Clicked", Toast.LENGTH_SHORT).show(); });
(2) TextView
用于显示文本内容。
常用属性 :
android:text
:设置显示的文本。android:textSize
:设置文本大小。android:textColor
:设置文本颜色。
示例 :
import android.widget.TextView; TextView textView = findViewById(R.id.textView); textView.setText("Hello, World!");
(3) EditText
用于接收用户输入的文本。
继承自
TextView
。常用属性 :
android:hint
:设置提示文本。android:inputType
:设置输入类型(如文本、数字、密码等)。
示例 :
import android.widget.EditText; EditText editText = findViewById(R.id.editText); String input = editText.getText().toString();
(4) ImageView
用于显示图片。
常用属性 :
android:src
:设置图片资源。android:scaleType
:设置图片的缩放类型。
示例 :
import android.widget.ImageView; ImageView imageView = findViewById(R.id.imageView); imageView.setImageResource(R.drawable.my_image);
(5) CheckBox
用于多选框。
常用属性 :
android:checked
:设置默认选中状态。
示例 :
import android.widget.CheckBox; CheckBox checkBox = findViewById(R.id.checkBox); if (checkBox.isChecked()) { // 复选框被选中 }
(6) RadioButton
和 RadioGroup
用于单选按钮组。
常用属性 :
android:checkedButton
:设置默认选中的单选按钮。
示例 :
import android.widget.RadioGroup; import android.widget.RadioButton; RadioGroup radioGroup = findViewById(R.id.radioGroup); radioGroup.setOnCheckedChangeListener((group, checkedId) -> { RadioButton radioButton = findViewById(checkedId); Toast.makeText(this, radioButton.getText(), Toast.LENGTH_SHORT).show(); });
(7) Spinner
用于下拉选择框。
常用属性 :
android:entries
:设置下拉选项。
示例 :
import android.widget.Spinner; Spinner spinner = findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, items); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);
(8) ProgressBar
用于显示进度。
常用属性 :
android:progress
:设置当前进度。android:max
:设置最大进度值。
示例 :
import android.widget.ProgressBar; ProgressBar progressBar = findViewById(R.id.progressBar); progressBar.setProgress(50); // 设置进度
(9) Switch
用于开关控件。
常用属性 :
android:checked
:设置默认开关状态。
示例 :
import android.widget.Switch; Switch switchButton = findViewById(R.id.switchButton); if (switchButton.isChecked()) { // 开关打开 }
2. 布局控件
android.widget
包中还有一些用于布局的控件,例如:
(1) LinearLayout
线性布局,可以水平或垂直排列子视图。
常用属性 :
android:orientation
:设置排列方向(vertical
或horizontal
)。
示例 :
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2" /> </LinearLayout>
(2) RelativeLayout
相对布局,子视图可以相对于父视图或其他子视图定位。
常用属性 :
android:layout_alignParentTop
:与父视图顶部对齐。android:layout_toRightOf
:位于指定视图的右侧。
示例 :
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button 2" android:layout_toRightOf="@id/button1" /> </RelativeLayout>
(3) FrameLayout
帧布局,子视图可以叠加显示。
示例 :
<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/image1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Overlay Text" /> </FrameLayout>
3. 适配器控件
android.widget
包中还有一些用于显示列表或网格的控件,例如:
(1) ListView
用于显示垂直滚动的列表。
常用属性 :
android:entries
:设置列表项。
示例 :
import android.widget.ListView; ListView listView = findViewById(R.id.listView); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items); listView.setAdapter(adapter);
(2) GridView
用于显示网格布局。
常用属性 :
android:numColumns
:设置列数。
示例 :
GridView gridView = findViewById(R.id.gridView); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, items); gridView.setAdapter(adapter);
4. 总结
android.widget
包提供了丰富的 UI 控件,涵盖了从按钮、文本框到列表、网格等各种常用组件。以下是常见的应用场景:
- 按钮和文本
:使用
Button
、TextView
、EditText
等控件实现用户交互。 - 列表和网格
:使用
ListView
、GridView
显示数据。 - 布局管理
:使用
LinearLayout
、RelativeLayout
、FrameLayout
等布局控件组织界面。