【移动应用开发期末复习】第五/六章例题

系列文章

第一章——Android平台概述
第一章例题
第二章——Android开发环境
第二章例题
第三章
第三章例题
第四章
第五/六章



在这里插入图片描述


在这里插入图片描述

RadioGroup 是一个Android特有的布局容器,用于包含多个RadioButton组件。当用户选择其中一个RadioButton时,RadioGroup会自动取消其他RadioButton的选择,从而实现互斥的效果


在这里插入图片描述


在这里插入图片描述

  • 在Android中,Click事件不仅仅可以发生在按钮(Button)上,实际上它可以发生在任何实现了View.OnClickListener接口的视图组件上。例如,ImageView、TextView(如果设置为可点击)、LinearLayout等都可以响应Click事件。Click事件表示的是用户点击了某个视图组件
  • 在Android中,当TextView组件(或其他可聚焦的视图组件)的焦点状态发生变化时,会触发FocusChange事件

在这里插入图片描述

  • Spinner:允许用户从下拉列表中选择一个项目。
  • Gallery:已经过时,并且被 HorizontalScrollView 和 ViewPager 替代,主要用于水平滚动的图像列表。
  • GridView:是一个二维的、可扩展的、滚动的网格视图,常用于显示图片或其他项目。
  • ListView:是一个垂直滚动的列表视图,用于显示项目列表。

在这里插入图片描述
Android的布局管理器是用于管理和组织UI组件(如按钮、文本框等)的工具,它们决定了组件在屏幕上的位置和大小。以下是Android中常见的布局管理器:

  1. LinearLayout(线性布局)
    允许子视图按照水平或垂直方向排列。
    通过设置权重(weight)来分配额外的空间。
    简单易用,适合简单的线性布局场景。
  2. RelativeLayout(相对布局)
    子视图的位置是相对于其他视图或父视图来确定的。
    允许复杂的布局设计,特别是当需要视图之间具有相对位置关系时。
    提供了丰富的属性来控制视图之间的相对位置。
  3. FrameLayout(帧布局)
    子视图被放置在屏幕上的左上角,并堆叠在一起。
    后添加的视图会覆盖先添加的视图。
    通常用于实现覆盖效果或作为其他布局的容器。
  4. ConstraintLayout(约束布局)
    使用约束关系来定义子视图之间的位置关系。
    提供了灵活性和性能优势,适用于复杂的布局设计。
    逐渐成为Android开发的推荐布局管理器。
  5. TableLayout(表格布局)
    子视图以表格的形式排列,具有行和列的概念。
    通常用于显示整齐排列的数据,如表格或表单。
    在某些特定场景下(如设置界面)非常有用。
  6. GridLayout(网格布局)
    子视图以网格的形式排列,可以设置行数、列数和子视图之间的间隔。
    适用于需要创建网格状布局的场景,如游戏界面或图片展示。

在这里插入图片描述

  • android:layout_alignParentBottom="true":使控件的底部与其父控件的底部对齐。
  • android:layout_alignBottom="@id/someViewId":使当前控件的底部与指定ID的控件的底部对齐。
  • android:layout_alignBaseline="@id/someViewId":使当前控件的文本基线与指定ID的控件的文本基线对齐。
  • android:layout_alignParentTop="true":使控件的顶部与其父控件的顶部对齐。

在这里插入图片描述


在这里插入图片描述

B和D都不是有效的属性。

若要实现组件水平排列则选C。


在这里插入图片描述

  • android:shrinkColumns:设置指定的列为可收缩的列。当列的内容过多时,这些列的内容将往列方向显示,以防止内容被挤出屏幕。
  • android:collapseColumns:设置要隐藏的列,与设置可收缩的列不同。
  • android:stretchColumns:设置指定的列为可伸展的列,这些列可以向行方向伸展以填补空白空间。

在这里插入图片描述
在这里插入图片描述

  • C . 当调用SQLiteOpenHelpergetWritableDatabase()getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,并首次生成时会调用onCreate()方法。而不是每次调用getWritableDatabase()都会执行onCreate方法。

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • A. 是一个接口,不能直接实例化它。你需要通过Context的方法来获取一个SharedPreferences的实例

  • B.Editor同样是一个接口,用于编辑SharedPreferences中的数据。需要通过SharedPreferences实例的edit()方法来获取一个Editor的实例

  • C. SharedPreferences对象只提供读取数据的方法,不能进行数据的存储和修改操作。这些操作需要通过
    SharedPreferences类的嵌套类SharedPreferences.Editor类所提供的方法来实现

  • D.当使用Editor对象修改SharedPreferences中的数据后,你必须调用commit()方法来提交你的更改。否则,这些更改将不会被保存到SharedPreferences中。另外,从API 11(Android 3.0)开始,还有一个apply()方法也可以用来提交更改,但它与commit()有些不同(例如,它是异步的)。但在大多数情况下,commit()方法是正确的选择。


在这里插入图片描述

Context类并没有一个closeDatabase方法。关闭数据库通常是通过你获取的SQLiteDatabase实例来调用的close方法


在这里插入图片描述

在Android中,文件操作模式决定了文件如何被应用访问以及与其他应用之间的交互。

  • A. MODE_APPEND - 这种模式表示追加方式存储。它允许应用向文件中追加内容,而不是覆盖它。如果文件已存在,内容将被追加到文件的末尾;如果文件不存在,则会创建一个新文件。

  • B. MODE_WORLD_READABLE - 这个模式表示当前文件可以被其他应用读取。它并不限制文件的写入行为,也就是说,写入文件时不会覆盖原有内容,而是按照所选的写入模式(如MODE_APPEND或MODE_PRIVATE)进行操作。

  • C. MODE_WORLD_WRITEABLE - 这个模式表示当前文件可以被其他应用写入。同样地,它并不直接控制文件的写入方式,而是与其他写入模式(如MODE_APPEND或MODE_PRIVATE)一起使用。

  • D. MODE_PRIVATE - 这是默认的文件操作模式,表示文件是私有数据,只能被应用本身访问。在这种模式下,写入的内容会覆盖原文件的内容。


在这里插入图片描述

SharedPreferences是一个接口,不能直接实例化它。你需要通过Context的getSharedPreferences()方法来获取一个SharedPreferences的实例


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
ContentProvider是Android中用于在不同应用程序之间共享数据的一种机制。然而,ContentProvider本身并不直接创建Context对象。相反,ContentProvider是在其宿主进程中运行的,并通过该进程的Context来访问数据。这意味着在创建ContentProvider对象时,并不会直接创建一个新的Context对象,而是使用已经存在的Context。


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

  1. 首选项(SharedPreferences)
    SharedPreferences是一种轻量级的数据存储方式,适用于存储少量的简单配置数据,如应用程序的设置选项或用户的偏好设置。它基于键值对的形式进行数据存储,并且数据会被永久保留。
  2. 数据库(SQLite)
    SQLite是Android内置的轻量级关系型数据库,广泛应用于存储和访问结构化数据。它提供了高效、可靠的数据存储方案,并且支持复杂的数据操作。
  3. 文件(File)
    Android支持将数据存储在文件中,这种方式适用于存储大量非结构化数据,如图片、音频和视频等。Android提供了多种类(如File和FileOutputStream)来实现对文件的读写操作。
  4. Content Provider
    Content Provider是一种数据存储和访问机制,它允许应用程序访问其他应用程序的数据。通过ContentResolver,应用程序可以查询、修改、添加或删除ContentProvider中的数据。ContentProvider 通常用于在应用程序之间共享数据

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
RadioButton是表示单选按钮的控件,而RadioGroup是一个容器控件,用于容纳多个RadioButton,并确保在同一时间只有一个RadioButton能被选中,即实现互斥的选择效果。在XML布局文件中,可以将RadioButton放置在RadioGroup内部,从而实现这一功能。同时,RadioButton的选中状态可以通过设置监听器来监听变化,并在需要时执行相应的操作


在这里插入图片描述

在Android中,有四种常用的布局方式,分别是:FrameLayout(框架布局)、LinearLayout(线性布局)、RelativeLayout(相对布局)和TableLayout(表格布局)。

  1. FrameLayout框架布局
    布局特点:放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素
    应用场景:适合浏览单张图片,或者两张图片叠在一起动态改变。
  2. LinearLayout线性布局
    布局特点:放主要提供控件水平或者垂直排列的模型,每个子组件 都是以垂直或水平的方式来线性排布.(默认是垂直)
    应用场景:最常用的布局方式
    linearLayout中有一个重要的属性 android:layout_weight=”1”,这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。
  3. RelativeLayout相对布局
    布局特点:为某一个组件为参照物,来定位下一个组件的位置的布局方式。
    应用场景:控件之间存在相应关系(适配神器,推荐使用)
  4. GridLayout(网格布局)
    布局特点:和TableLayout(表格布局) 有点类似,不过他有很多前者没有的东西,也更加好用,。可以自己设置布局中组件的排列方式;可以自定义网格布局有多少行,多少列;可以直接设置组件位于某行某列;可以设置组件横跨几行或者几列。
    应用场景:控件之间存在相应关系。

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
例题4.4.2是关于主成分分析的例题,其中给出了一组数据,包括5个变量和10个观测值。我们可以按照以下步骤进行主成分分析: 1. 数据标准化:对每个变量进行标准化处理,即减去该变量的均值,再除以该变量的标准差。 2. 计算协方差矩阵:将标准化后的数据计算协方差矩阵。 3. 计算特征值和特征向量:对协方差矩阵进行特征值分解,得到特征值和特征向量。 4. 选取主成分:按照特征值从大到小的顺序,选取前k个特征值所对应的特征向量,组成k个主成分。 5. 计算主成分得分:将每个观测值代入k个主成分的公式中,得到每个观测值在k个主成分上的得分。 在例题4.4.2中,经过标准化处理后,协方差矩阵为: ``` 1.00 0.98 0.74 0.79 0.90 0.98 1.00 0.67 0.73 0.85 0.74 0.67 1.00 0.92 0.88 0.79 0.73 0.92 1.00 0.89 0.90 0.85 0.88 0.89 1.00 ``` 特征值分解得到的特征值为: ``` 3.5567 0.8465 0.4060 0.1329 0.0580 ``` 对应的特征向量为: ``` 0.4774 0.5000 0.4506 0.3796 0.4233 0.4645 0.4662 -0.4930 -0.3152 -0.5676 -0.4152 0.6017 -0.4057 0.0529 -0.5408 0.4964 -0.1979 -0.5405 0.4201 -0.5046 -0.4179 0.3314 0.3045 0.7676 -0.2260 ``` 按照特征值从大到小的顺序,选取前3个特征值所对应的特征向量,组成3个主成分: ``` PC1 = 0.4774x1 + 0.5000x2 - 0.4506x3 + 0.3796x4 - 0.4233x5 PC2 = 0.4645x1 + 0.4662x2 + 0.4930x3 - 0.3152x4 + 0.5676x5 PC3 = -0.4152x1 + 0.6017x2 + 0.4057x3 + 0.0529x4 + 0.5408x5 ``` 代入每个观测值得到它们在3个主成分上的得分: ``` 观测值1: PC1 = -1.8799, PC2 = 0.6364, PC3 = -0.0083 观测值2: PC1 = -0.5768, PC2 = -1.0168, PC3 = 0.4472 观测值3: PC1 = 1.7256, PC2 = -0.2551, PC3 = 0.3358 观测值4: PC1 = 0.0910, PC2 = 1.0170, PC3 = -0.0985 观测值5: PC1 = 0.6394, PC2 = 0.6185, PC3 = -0.6312 观测值6: PC1 = 0.7789, PC2 = -0.3195, PC3 = 0.5326 观测值7: PC1 = -0.3987, PC2 = -0.1984, PC3 = -0.8395 观测值8: PC1 = -0.4437, PC2 = 0.9642, PC3 = -0.0225 观测值9: PC1 = 0.1433, PC2 = -0.6477, PC3 = -0.2618 观测值10: PC1 = -0.1351, PC2 = -0.5096, PC3 = 0.1172 ``` 这样我们就得到了每个观测值在三个主成分上的得分,可以用这些得分来描述数据的结构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值