一、需要了解的Android知识
①Activity:负责管理用户与信息屏的交互。应用的功能是通过编写一个个Activity子类来实现。
②布局:定义了一系列用户界面对象以及它们在屏幕上显示的位置。组成布局的定义保存在XML文件中。布局文件的命名activity_xxx(约定)
③组件是用户界面的构造模块。组件可以显示文字或图像,与用户交互,甚至布置屏幕上的其他组件。每一个组件都是View类或其子类的一个具体实例。元素的名称就是组件的类型,各元素均有一组XML属性。属性可以看成是如何配置组件的指令。
下面解释一些属性的作用:
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"继承自ViewGroup
android:layout_width="match_parent" match_parent 视图与父视图大小相同
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView 组件属性
android:layout_width="wrap_content"视图将根据其展示的内容自动调节大小
android:layout_height="wrap_content"
android:padding="24dp"增加额外指定量的空间,
android:text="台湾是中国的一部分"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">它决定两者子组件是水平放置还是垂直放置
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TRUE"/>指定要显示文字的内容;不是字符串值,而是对字符串资源的引用,字符串资源保存在strings的XML文件中,便于对应用进行本地化。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FALSE"/>
</LinearLayout>
</LinearLayout>
④从XML布局到视图对象:关键在Activity。Activity子类实例化后onCreate(Bundle)方法就会被调用,通过setContentView(layoutResID)来获取activity的用户界面。
⑤布局是一种资源,资源是应用非代码形式的内容(图片,视频)。可以使用资源ID来在代码中获取相应的资源。
privateButton mTrueButton;
private ButtonmFalseButton;
变量名称前加m,是一种Android命名约定。(Alt+Enter组合键可以自动导包)
使用按钮组件:(步骤)
①引用视图对象;mTrueButton=(Button) findViewById(R.id.true_button);
②为对象设置监听器,以响应用户操作。
mTrueButton.setOnClickListener(newView.OnClickListener(){
public voidonClick(Viewview){
}
});
Control+R快速运行程序。
Gradle是Android的一个编译工具。
二、Android与MVC设计模式
①模型对象存储着应用的数据和业务逻辑。模型类通常用来映射与应用相关的一些事物(如用户,商店里的商品)。模型对象不关心用户界面,它存在的唯一目的就是存储和管理应用数据。Android应用里的模型类通常就是我们创建的定制类。应用的全部模型对象组成了模型层。
②视图对象知道如何在屏幕上绘制自己以及如何响应用户的输入,凡是能够在屏幕上看到的,就是视图对象。应用的全部视图对象组成了视图层。
③控制对象含有应用的逻辑单元,是视图和模型对象的纽带。控制对象响应视图对象触发的各类事件,此外还管理着模型对象与视图间的数据流动。在Android中控制器通常是Activity,Fragment或Service的一个子类。
举个例子分析:
下面这个GeoQuiz的功能类似于快速问答器,可以根据不同答案给出相应结果,效果如下:
项目源码下载:点击打开链接