目录

android.widget包介绍

android.widget包介绍

android.widget 是 Android 开发中用于构建用户界面(UI)的核心包之一。它包含了大量的 UI 控件(如按钮、文本框、列表等),这些控件通常被称为“小部件”(Widget)。 android.widget 包中的类大多继承自 android.view.View ,因此它们都具备视图的基本特性。

以下是 android.widget 包中一些常用类的详细介绍:


  • 用于触发用户交互的按钮。

  • 继承自 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();
    });
  • 用于显示文本内容。

  • 常用属性

    • android:text :设置显示的文本。
    • android:textSize :设置文本大小。
    • android:textColor :设置文本颜色。
  • 示例

    import android.widget.TextView;
    
    TextView textView = findViewById(R.id.textView);
    textView.setText("Hello, World!");
  • 用于接收用户输入的文本。

  • 继承自 TextView

  • 常用属性

    • android:hint :设置提示文本。
    • android:inputType :设置输入类型(如文本、数字、密码等)。
  • 示例

    import android.widget.EditText;
    
    EditText editText = findViewById(R.id.editText);
    String input = editText.getText().toString();
  • 用于显示图片。

  • 常用属性

    • android:src :设置图片资源。
    • android:scaleType :设置图片的缩放类型。
  • 示例

    import android.widget.ImageView;
    
    ImageView imageView = findViewById(R.id.imageView);
    imageView.setImageResource(R.drawable.my_image);
  • 用于多选框。

  • 常用属性

    • android:checked :设置默认选中状态。
  • 示例

    import android.widget.CheckBox;
    
    CheckBox checkBox = findViewById(R.id.checkBox);
    if (checkBox.isChecked()) {
        // 复选框被选中
    }
  • 用于单选按钮组。

  • 常用属性

    • 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();
    });
  • 用于下拉选择框。

  • 常用属性

    • 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);
  • 用于显示进度。

  • 常用属性

    • android:progress :设置当前进度。
    • android:max :设置最大进度值。
  • 示例

    import android.widget.ProgressBar;
    
    ProgressBar progressBar = findViewById(R.id.progressBar);
    progressBar.setProgress(50); // 设置进度
  • 用于开关控件。

  • 常用属性

    • android:checked :设置默认开关状态。
  • 示例

    import android.widget.Switch;
    
    Switch switchButton = findViewById(R.id.switchButton);
    if (switchButton.isChecked()) {
        // 开关打开
    }

android.widget 包中还有一些用于布局的控件,例如:

  • 线性布局,可以水平或垂直排列子视图。

  • 常用属性

    • android:orientation :设置排列方向( verticalhorizontal )。
  • 示例

    <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>
  • 相对布局,子视图可以相对于父视图或其他子视图定位。

  • 常用属性

    • 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
        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 包中还有一些用于显示列表或网格的控件,例如:

  • 用于显示垂直滚动的列表。

  • 常用属性

    • 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);
  • 用于显示网格布局。

  • 常用属性

    • 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 控件,涵盖了从按钮、文本框到列表、网格等各种常用组件。以下是常见的应用场景:

  • 按钮和文本 :使用 ButtonTextViewEditText 等控件实现用户交互。
  • 列表和网格 :使用 ListViewGridView 显示数据。
  • 布局管理 :使用 LinearLayoutRelativeLayoutFrameLayout 等布局控件组织界面。