Android
编写Android应用需要的一些新的概念和UI组件。
activity 是Android SDK 中Activity类的一个具体实例。负责管理用户与信息屏的交互。
layout(布局)定义了一系列用户界面对象 以及它们显示在屏幕上的位置。
组件 是用户界面的构造模块。组件可以 显示文字或图像,与用户交互,甚至布置屏幕上的其他组件。每一个组件都是View类或其子类的一个具体实例。
LinearLayout组件作为根元素必须指定Android XML资源文件的命名空间属性为 http://schemas.android.com/apk/res/android
xmlns:android="http://schemas.android.com/apk/res/android"
View类
View类的子类有:ViewGroup,TextView,Button
ViewGroup类
ViewGroup组件是个包含并配置其他组件的特殊组件
ViewGroup子类有:LinearLayout,FrameLayout,TableLayou,RelativeLayout
LinearLayout组件 需要一排或一列的样式布置组件时。
View-TextView类
View-Button类
资源
资源是应用非代码形式的内容,比如图像文件,音频文件以及XML文件
项目的所有资源文件都放在目录app/res的子目录下。
可以使用资源ID在代码中获取响应的资源。
布局是一种资源。activity_quiz.xml定义的布局的资源ID为R.layout.activity_quiz。
Android为整个布局文件以及各个字符串生成资源ID,,布局文件中的组件除外。
如果要为组件生成资源ID,在定义组件时,添加android:id属性
字符串资源
一个项目中可以有多个字符串文件,只要这些文件都放置在res/values/目录下,并且包含一resources根元素,以及多个string子元素,应用就能找到并正确使用他们。
引用资源
在代码中,使用资源id引用资源
mQuestionTextView = (TextView) findViewById(R.id.question_text_view);
在布局XML中,使用@符号 通过资源类型和资源名称来引用资源
<Button
android:id="@+id/prev_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="4dp"
android:drawableRight="@drawable/arrow_left"
android:text="@string/prev_button"/>
项目视图
android项目视图:android studio默认使用
project项目视图:android 项目的真实文件目录结构
项目目录
android项目视图下,app/java目录是项目全部Java源代码的存放处。
AppCompatActivity是Activity的一个子类,主要为Android旧版本提供兼容性支持。
Activity方法
onCreate(Bundle)
activity子类的实例创建后,该方法会被调用。
public void setContentView(int layoutResID)
功能:activity创建后,获取并管理所属自己的用户界面
根据传入的布局资源ID参数,该方法生成指定布局的视图,并将其放置在屏幕上。
布局视图生成后,布局文件包含的组件 也随之以各自的属性定义 完成实例化。
编码使用按钮组件,需要两个步骤
1.引用生成的视图对象
2.为对象设置监听器,以响应用户操作。
public View findViewById(int id)
该方法以组件ID作为参数,返回一个视图对象。
Android编程应遵循的命名规定:
变量名加前缀m
Android应用属于典型的事件驱动类型。
事件驱动类型应用启用后,即开始等待(监听)行为事件的发生。
为响应某个事件而创建的对象叫做监听器。
监听器是实现特定监听接口的对象,用来监听某个事件的发生。
Android SDK已经为各种事件内置开发了很多监听接口。
mTrueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//
}
});
传入setOnClickListener(OnClickListener)方法的是一个监听器。是一个实现了OnClickListener接口的对象。
所有的监听器都是用匿名内部类来实现。
Toast提示消息
Toast.makeText(QuizActivity.this, R.string.correct_toast, Toast.LENGTH_SHORT).show();
public static Toast makeText(Context context, int resId, int duration)
该方法创建一个Toast
Context参数是Activity的一个实例(Activity本身就是Context的一个子类)
resId参数是要显示的字符串消息的资源id
duration参数 指定toast消息显示的吃时间
Toast.show()
该方法在屏幕上显示toast消息。