Android中级控件介绍(五)
发布日期:2021-05-10 22:20:30 浏览次数:21 分类:精选文章

本文共 3014 字,大约阅读时间需要 10 分钟。

Android UI布局与控件开发指南

一、相对布局 (RelativeLayout)

相对布局是Android中常用的一种布局方式,能够更灵活地定位子视图的位置。确定子视图的位置需要参照物,否则子视图会默认显示在RelativeLayout的左上角。

参照物

  • 同级视图:与当前视图平级的视图作为参照物。
  • 上级视图:当前视图的上级布局(如RelativeLayout)作为参照物。
  • 位置属性

    • ** android:layout_above**:指定视图的上方位置。
    • ** android:layout_below**:指定视图的下方位置。
    • ** android:layout_left**:指定视图的左侧位置。
    • ** android:layout_right**:指定视图的右侧位置。
    • ** android:layout_start** 和 ** android:layout_end**:在水平布局中使用,精确控制左右位置。
    • ** android:layout_gravity**:类似于gravity属性,用于控制视图在参照物中的对齐方式。

    二、框架布局 (FrameLayout)

    框架布局(FrameLayout)是Android中的另一种布局方式,其子视图无法指定具体的位置。子视图会从FrameLayout的左上角开始绘制,后续添加的子视图会覆盖之前的视图。

    核心属性

  • foreground:指定FrameLayout的背景图像。
  • foregroundGravity:指定前景图像的对齐方式。
  • 框架布局常用于需要重叠显示的场景,如游戏界面和绘图应用。


    三、复选框 (CheckBox)

    CompoundButton是Android中用于复选框的抽象类,实际开发中常用其派生类:

  • 复选框 (CheckBox)

    • setChecked(boolean):设置复选框的勾选状态。
    • setButtonDrawable(Drawable):设置左侧勾选图标。
    • setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener):设置勾选状态变化监听器。
    • isChecked(boolean):判断当前复选框是否勾选。
  • 开关按钮 (Switch)

    • 和复选框类似,但开关按钮的界面设计更为丰富,可设置开启/关闭时的文本和图标。
    • ** vexelDrawable**:自定义开关的轨道和图标。
  • 单选按钮 (RadioButton)

    • check(int):选中指定资源编号的单选按钮。
    • getCheckedRadioButtonId(int):获取选中单选按钮的资源编号。
    • setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener):设置单选按钮勾选变化监听器。

  • 四、下拉框 (Spinner)

    Spinner是下拉框控件,用于从列表中选择项。其核心方法包括:

  • setPrompt(CharSequence):设置下拉框的标题文本。
  • setAdapter(Adapter):设置下拉框的适配器,可选择ArrayAdapter或SimpleAdapter。
  • setSelection(int):设置当前选中的项。
  • setOnItemSelectedListener(OnItemSelectedListener):设置选择项的监听器。
  • 展示形式

    • dropdown:下拉框列表在下方展示。
    • dialog:下拉框以对话框形式在页面中间展示。

    五、数组适配器 (ArrayAdapter)

    数组适配器是实现简单列表适配的基础类。其主要功能是将数据加工成适合列表显示的格式。

    使用方法

  • 创建数组适配器
    ArrayAdapter
    adapter = new ArrayAdapter
    (this, R.layout.item_select, starArray);
  • 设置布局样式
    adapter.setDropDownViewResource(R.layout.item_dropdown);
  • 应用适配器
    spinner.setAdapter(adapter);

  • 六、简单适配器 (SimpleAdapter)

    简单适配器可在列表项中展示多个控件,如文本和图片结合展示。使用方法如下:

  • 创建简单适配器
    SimpleAdapter starAdapter = new SimpleAdapter(this, list, R.layout.item_simple, new String[]{"icon", "name"}, new int[]{R.id.iv_icon, R.id.tv_name});
  • 应用适配器
    spinner.setAdapter(starAdapter);

  • 七、文本编辑框 (EditText)

    EditText是用于文本输入的控件,常用属性包括:

  • inputType:指定输入类型,如tel、text,甚至多种类型结合使用。
  • maxLength:设置输入最大长度。
  • hint:设置输入提示文本。
  • textColorHint:设置提示文本颜色。
  • EditText适用于收集用户输入,如搜索框和注释框。


    八、文本监听器 (TextWatcher)

    文本监听器用于实时监控EditText中的文本变化。常见使用场景包括:

  • 实现输入长度限制。
  • 模拟输入回车符实现界面跳转。

  • 九、自动完成编辑框 (AutoCompleteTextView)

    自动完成编辑框结合EditText和Spinner,用于快速显示匹配项。实现原理是绑定EditText和Spinner,内容查询触发自动下拉。

    核心属性

    • threshold:设置下拉触发的最小输入长度。

    十、Activity生命周期

    Activity的生命周期描述了其在系统内的状态变化:

  • onCreate:创建页面,加载UI组件。
  • onStart:显示页面。
  • onResume:恢复页面。
  • onPause:暂停页面。
  • onStop:停止页面。
  • onDestroy:销毁页面。

  • 十一、使用Intent传递消息

    Intent是Android中组件间通信的桥梁,主要功能包括:

  • 意图定义:指定通信方向及必要参数。
  • 数据传递:可携带文本、整数等各种数据类型。
  • 返回参数:通过startActivityForResult接收结果数据。
  • 发起Intent

    Intent intent = new Intent(this, NextActivity.class);
    intent.putExtra("param", "data");
    startActivity(intent);

    接收Intent

    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    // 解包参数
    }

    通过以上指南,开发者可以更高效地构建Android UI界面和实现组件间通信功能。

    上一篇:Android数据存储(六)
    下一篇:Android初步介绍+控件(四)

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月19日 09时28分09秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章

    2024年网络安全八大前沿趋势,零基础入门到精通,收藏这篇就够了 2025-03-29
    2024年薪酬最高的五个网络安全职位,零基础入门到精通,收藏这一篇就够 2025-03-29
    2024年非科班的人合适转行做程序员吗? 2025-03-29
    2024数字安全创新性案例报告,从零基础到精通,收藏这篇就够了! 2025-03-29
    2024最新最全CTF入门指南(非常详细)零基础入门到精通,收藏这一篇就够了 2025-03-29
    2024最新科普什么是大模型?零基础入门到精通,收藏这篇就够了 2025-03-29
    2024最新程序员接活儿搞钱平台盘点 2025-03-29
    2024最火专业解读:信息安全(非常详细)零基础入门到精通,收藏这一篇就够了 2025-03-29
    2025最新大模型技术学习过程梳理,零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新Bash Shell入门指南,零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新C++快速入门(适合小白)零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新一文彻底搞懂大模型 - Agent(非常详细)零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新大模型学习路线,零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了 2025-03-30
    2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新大语言模型的指令微调,零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了 2025-03-30
    2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了 2025-03-30