
android.widget
是 Android 开发中用于构建用户界面(UI)的核心包之一。它包含了大量的 UI 控件(如按钮、文本框、列表等),这些控件通常被称为“小部件”(Widget)。
android.widget
包中的类大多继承自
android.view.View
,因此它们都具备视图的基本特性。
以下是
android.widget
包中一些常用类的详细介绍:
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();
});
TextView用于显示文本内容。
常用属性 :
android:text
:设置显示的文本。android:textSize
:设置文本大小。android:textColor
:设置文本颜色。示例 :
import android.widget.TextView;
TextView textView = findViewById(R.id.textView);
textView.setText("Hello, World!");
EditText用于接收用户输入的文本。
继承自
TextView
。
常用属性 :
android:hint
:设置提示文本。android:inputType
:设置输入类型(如文本、数字、密码等)。示例 :
import android.widget.EditText;
EditText editText = findViewById(R.id.editText);
String input = editText.getText().toString();
ImageView用于显示图片。
常用属性 :
android:src
:设置图片资源。android:scaleType
:设置图片的缩放类型。示例 :
import android.widget.ImageView;
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageResource(R.drawable.my_image);
CheckBox用于多选框。
常用属性 :
android:checked
:设置默认选中状态。示例 :
import android.widget.CheckBox;
CheckBox checkBox = findViewById(R.id.checkBox);
if (checkBox.isChecked()) {
// 复选框被选中
}
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();
});
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);
ProgressBar用于显示进度。
常用属性 :
android:progress
:设置当前进度。android:max
:设置最大进度值。示例 :
import android.widget.ProgressBar;
ProgressBar progressBar = findViewById(R.id.progressBar);
progressBar.setProgress(50); // 设置进度
Switch用于开关控件。
常用属性 :
android:checked
:设置默认开关状态。示例 :
import android.widget.Switch;
Switch switchButton = findViewById(R.id.switchButton);
if (switchButton.isChecked()) {
// 开关打开
}
android.widget
包中还有一些用于布局的控件,例如:
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>
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>
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>
android.widget
包中还有一些用于显示列表或网格的控件,例如:
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);
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);
android.widget
包提供了丰富的 UI 控件,涵盖了从按钮、文本框到列表、网格等各种常用组件。以下是常见的应用场景:
Button
、
TextView
、
EditText
等控件实现用户交互。ListView
、
GridView
显示数据。LinearLayout
、
RelativeLayout
、
FrameLayout
等布局控件组织界面。