当前位置: 首页 > news >正文

第三章 Android常见界面控件

📝 《第三章:Android 常见界面控件》                      ————关联知识学习,效果会更好


# 📘 第三章:Android 常见界面控件Android 应用的界面由各种控件(View)组成。掌握常见控件的使用,是编写交互界面的核心。---## 一、简单控件的使用常见基础控件包括:| 控件名 | 功能 |
|---------|------|
| `TextView` | 显示文本内容 |
| `EditText` | 输入文本内容 |
| `Button` | 按钮点击交互 |
| `ImageView` | 显示图片 |
| `RadioButton` | 单选按钮 |
| `CheckBox` | 复选框 |
| `Toast` | 弹出提示信息 |---### 1️⃣ TextView —— 文本显示控件**常用属性:**
```xml
android:text="显示文字"
android:textSize="18sp"
android:textColor="#333333"
android:gravity="center"

示例:

<TextViewandroid:id="@+id/tv_hello"android:text="欢迎使用Android!"android:textSize="20sp"android:textColor="@color/black"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

Java 调用:

TextView tv = findViewById(R.id.tv_hello);
tv.setText("你好,Android!");

2️⃣ EditText —— 输入框控件

常用属性:

android:hint="请输入用户名"
android:inputType="textPassword"   <!-- 限制输入类型 -->

示例:

<EditTextandroid:id="@+id/et_name"android:hint="请输入用户名"android:layout_width="match_parent"android:layout_height="wrap_content"/>

Java 获取输入内容:

EditText et = findViewById(R.id.et_name);
String name = et.getText().toString();

3️⃣ Button —— 按钮控件

XML 示例:

<Buttonandroid:id="@+id/btn_login"android:text="登录"android:layout_width="wrap_content"android:layout_height="wrap_content"/>

Java 响应点击事件:

Button btn = findViewById(R.id.btn_login);
btn.setOnClickListener(v -> Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show()
);

4️⃣ ImageView —— 图片控件

常用属性:

android:src="@drawable/logo"
android:scaleType="centerCrop"

示例:

<ImageViewandroid:id="@+id/img_logo"android:src="@drawable/logo"android:layout_width="100dp"android:layout_height="100dp"/>

Java 设置图片:

ImageView img = findViewById(R.id.img_logo);
img.setImageResource(R.drawable.new_logo);

5️⃣ RadioButton —— 单选按钮(配合 RadioGroup)

XML 示例:

<RadioGroupandroid:id="@+id/rg_gender"android:orientation="horizontal"><RadioButtonandroid:id="@+id/rb_male"android:text="男"/><RadioButtonandroid:id="@+id/rb_female"android:text="女"/>
</RadioGroup>

Java 判断选中项:

RadioGroup rg = findViewById(R.id.rg_gender);
int id = rg.getCheckedRadioButtonId();
RadioButton rb = findViewById(id);
Toast.makeText(this, "选择:" + rb.getText(), Toast.LENGTH_SHORT).show();

6️⃣ CheckBox —— 多选按钮

XML 示例:

<CheckBox android:id="@+id/cb_music" android:text="音乐"/>
<CheckBox android:id="@+id/cb_sport" android:text="运动"/>

Java 获取状态:

CheckBox cbMusic = findViewById(R.id.cb_music);
if (cbMusic.isChecked()) {Toast.makeText(this, "喜欢音乐", Toast.LENGTH_SHORT).show();
}

7️⃣ Toast —— 弹出提示信息

用法:

Toast.makeText(this, "注册成功!", Toast.LENGTH_SHORT).show();

二、列表控件 ListView

1️⃣ 概念

ListView 用于显示 可滚动的多项数据列表


2️⃣ 使用步骤

(1) 布局:
<ListViewandroid:id="@+id/list_view"android:layout_width="match_parent"android:layout_height="match_parent"/>
(2) 数据源:
String[] products = {"牛奶", "面包", "苹果", "洗发水"};
(3) 创建适配器:
ArrayAdapter<String> adapter =new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, products);
(4) 绑定:
ListView listView = findViewById(R.id.list_view);
listView.setAdapter(adapter);
(5) 点击事件:
listView.setOnItemClickListener((parent, view, position, id) -> {String item = products[position];Toast.makeText(this, "点击了:" + item, Toast.LENGTH_SHORT).show();
});

3️⃣ 常用 Adapter 类型

适配器类型说明
ArrayAdapter绑定字符串数组
SimpleAdapter绑定键值对数据(图片+文字)
BaseAdapter自定义复杂列表项
RecyclerView.Adapter高性能列表适配器

三、实战演练:超市界面(ListView + SimpleAdapter)

目标: 显示超市商品列表(图标 + 名称 + 价格)。

(1) 主布局 activity_main.xml

<ListViewandroid:id="@+id/lv_goods"android:layout_width="match_parent"android:layout_height="match_parent"/>

(2) 单项布局 item_goods.xml

<LinearLayout android:orientation="horizontal"><ImageViewandroid:id="@+id/img_icon"android:layout_width="60dp"android:layout_height="60dp"/><LinearLayout android:orientation="vertical"><TextView android:id="@+id/tv_name" android:text="商品名"/><TextView android:id="@+id/tv_price" android:text="价格"/></LinearLayout>
</LinearLayout>

(3) Java 代码:

List<Map<String,Object>> data = new ArrayList<>();
int[] imgs = {R.drawable.milk, R.drawable.bread, R.drawable.apple};
String[] names = {"牛奶", "面包", "苹果"};
String[] prices = {"¥6.5", "¥4.0", "¥3.0"};for(int i=0;i<names.length;i++){Map<String,Object> map = new HashMap<>();map.put("img", imgs[i]);map.put("name", names[i]);map.put("price", prices[i]);data.add(map);
}SimpleAdapter adapter = new SimpleAdapter(this,data,R.layout.item_goods,new String[]{"img","name","price"},new int[]{R.id.img_icon,R.id.tv_name,R.id.tv_price}
);ListView lv = findViewById(R.id.lv_goods);
lv.setAdapter(adapter);

运行效果:超市商品图 + 名称 + 价格 列表展示。


四、RecyclerView 控件的使用

1️⃣ 简介

RecyclerViewListView 的升级版,性能更好、支持多种布局样式(列表、网格、瀑布流)


2️⃣ 使用步骤

(1) 添加依赖:
implementation "androidx.recyclerview:recyclerview:1.3.2"
(2) 布局:
<androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recycler_view"android:layout_width="match_parent"android:layout_height="match_parent"/>
(3) 单项布局 item_photo.xml
<ImageViewandroid:id="@+id/img_photo"android:layout_width="match_parent"android:layout_height="200dp"android:scaleType="centerCrop"/>
(4) 适配器类:
public class PhotoAdapter extends RecyclerView.Adapter<PhotoAdapter.ViewHolder> {private List<Integer> photos;public PhotoAdapter(List<Integer> photos){ this.photos = photos; }static class ViewHolder extends RecyclerView.ViewHolder {ImageView imgPhoto;ViewHolder(View view){ super(view); imgPhoto = view.findViewById(R.id.img_photo); }}@Overridepublic ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_photo, parent, false);return new ViewHolder(view);}@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {holder.imgPhoto.setImageResource(photos.get(position));}@Overridepublic int getItemCount() { return photos.size(); }
}
(5) MainActivity 设置:
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); // 2列网格List<Integer> photoList = Arrays.asList(R.drawable.pic1, R.drawable.pic2, R.drawable.pic3);
PhotoAdapter adapter = new PhotoAdapter(photoList);
recyclerView.setAdapter(adapter);

效果:一个精美的相册网格界面。


五、实战演练:相册界面(RecyclerView + GridLayout)

功能:

  • 显示多张图片

  • 点击图片弹出提示或打开大图

扩展思路:

  • 使用 Glide 加载网络图片

  • 使用 Intent 打开全屏大图

  • 添加动画与圆角图片样式


✅ 本章小结

控件功能示例
TextView显示文字欢迎界面
EditText输入内容登录输入框
Button点击交互提交按钮
ImageView图片展示商品图标
RadioButton单选项性别选择
CheckBox多选项爱好选择
Toast提示消息提交成功提示
ListView简单列表超市商品
RecyclerView高性能列表相册网格

💡 学习建议:

  • 尝试结合 ConstraintLayout 做更美观的布局。

  • 在控件中添加点击事件、动态更新内容。

  • 后续章节将学习如何整合数据库与界面交互。

http://www.dtcms.com/a/607441.html

相关文章:

  • 上海 顶尖 网站设计主流网站关键词排名
  • 网站建设合同缴纳印花税吗手机分销网站建设
  • 徐州市经济技术开发区建设局网站公司网站如何被收录
  • 【连接器专题】电缆端子压接有关的术语
  • 假发网站是怎么做的wordpress 导入word
  • 网站建设 锐颖科技婚纱摄影网站源码asp
  • 微网站 留言板海外广告投放公司
  • 玩转Docker | 使用Docker部署Dokuwiki个人wiki系统
  • php mysql做网站网站图文列表
  • Spring Boot管理用户数据
  • python 网站开发实例教程邮件营销 wordpress
  • 网络服务器端口怎么查青海seo技术培训
  • 做php网站前端价格网站对网络营销的作用
  • 口碑好的盘锦网站建设免费找工程项目承包软件
  • 个人网站erp网站开发
  • 网站外接学软件工程培训就业机构
  • 如何提升网站的排名wordpress需要账号
  • 什么是防火墙可靠性?
  • 苏州高端网站设计机构黑马程序员就业情况
  • 七宝做网站公司郑州模板网站设计哪家便宜
  • 自定义conda环境和包下载目录
  • 常见且高频的 ZooKeeper 面试题
  • 潍坊网站制作培训成都市城乡建设厅官方网站
  • 做服装店网站的素材wordpress搭建博客视频
  • 网站流媒体播放如何做装修公司加盟 招商加盟
  • 织梦网站图片代码个人网页制作全过程
  • <textarea>:文本区域元素
  • 【鸿蒙生态共建】鸿蒙6适配-API变化与兼容(2.UI交互与基础能力篇)--《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利
  • Julia 数组
  • 免费的外贸网站深圳品牌策划公司排名