系列文章
第一章——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中常见的布局管理器:
LinearLayout
(线性布局)
允许子视图按照水平或垂直方向排列。
通过设置权重(weight)来分配额外的空间。
简单易用,适合简单的线性布局场景。RelativeLayout
(相对布局)
子视图的位置是相对于其他视图或父视图来确定的。
允许复杂的布局设计,特别是当需要视图之间具有相对位置关系时。
提供了丰富的属性来控制视图之间的相对位置。FrameLayout
(帧布局)
子视图被放置在屏幕上的左上角,并堆叠在一起。
后添加的视图会覆盖先添加的视图。
通常用于实现覆盖效果或作为其他布局的容器。ConstraintLayout
(约束布局)
使用约束关系来定义子视图之间的位置关系。
提供了灵活性和性能优势,适用于复杂的布局设计。
逐渐成为Android开发的推荐布局管理器。TableLayout
(表格布局)
子视图以表格的形式排列,具有行和列的概念。
通常用于显示整齐排列的数据,如表格或表单。
在某些特定场景下(如设置界面)非常有用。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 . 当调用
SQLiteOpenHelper
的getWritableDatabase()
或getReadableDatabase()
方法获取用于操作数据库的SQLiteDatabase
实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,并首次生成时会调用onCreate()
方法。而不是每次调用getWritableDatabase()都会执行onCreate方法。
-
A.
-
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。
- 首选项(SharedPreferences)
SharedPreferences是一种轻量级的数据存储方式,适用于存储少量的简单配置数据,如应用程序的设置选项或用户的偏好设置。它基于键值对的形式进行数据存储,并且数据会被永久保留。 - 数据库(SQLite)
SQLite是Android内置的轻量级关系型数据库,广泛应用于存储和访问结构化数据。它提供了高效、可靠的数据存储方案,并且支持复杂的数据操作。 - 文件(File)
Android支持将数据存储在文件中,这种方式适用于存储大量非结构化数据,如图片、音频和视频等。Android提供了多种类(如File和FileOutputStream)来实现对文件的读写操作。 - Content Provider
Content Provider是一种数据存储和访问机制,它允许应用程序访问其他应用程序的数据。通过ContentResolver,应用程序可以查询、修改、添加或删除ContentProvider中的数据。ContentProvider 通常用于在应用程序之间共享数据 。
RadioButton
是表示单选按钮的控件,而RadioGroup
是一个容器控件,用于容纳多个RadioButton,并确保在同一时间只有一个RadioButton能被选中,即实现互斥的选择效果。在XML布局文件中,可以将RadioButton放置在RadioGroup内部,从而实现这一功能。同时,RadioButton的选中状态可以通过设置监听器来监听变化,并在需要时执行相应的操作
在Android中,有四种常用的布局方式,分别是:FrameLayout(框架布局)、LinearLayout(线性布局)、RelativeLayout(相对布局)和TableLayout(表格布局)。
FrameLayout
框架布局
布局特点:放入其中的所有元素都被放置在最左上的区域,而且无法为这些元素指定一个确切的位置,下一个子元素会重叠覆盖上一个子元素
应用场景:适合浏览单张图片,或者两张图片叠在一起动态改变。LinearLayout
线性布局
布局特点:放主要提供控件水平或者垂直排列的模型,每个子组件 都是以垂直或水平的方式来线性排布.(默认是垂直)
应用场景:最常用的布局方式
linearLayout中有一个重要的属性 android:layout_weight=”1”,这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。RelativeLayout
相对布局
布局特点:为某一个组件为参照物,来定位下一个组件的位置的布局方式。
应用场景:控件之间存在相应关系(适配神器,推荐使用)GridLayout
(网格布局)
布局特点:和TableLayout
(表格布局) 有点类似,不过他有很多前者没有的东西,也更加好用,。可以自己设置布局中组件的排列方式;可以自定义网格布局有多少行,多少列;可以直接设置组件位于某行某列;可以设置组件横跨几行或者几列。
应用场景:控件之间存在相应关系。