Android的四大组件:
1、activity(多层界面运用)
2、广播接收者
3、服务
4、内容提供者
此外,我这里还会说道
5、多媒体编程(图形、声音、视频)
6、Fragment+动画
7、SVN 版本控制
1.多界面应用创建的步骤
- 在Layout里定义一个新布局布局
- 在src文件里新创建一个activity,指定显示的布局
- 在清单文件AndroidManifest里注册activity。
2.多层界面之间的数据传递
简单数据
封装数据
Intent intent = new Intent(this , xxx.class); //指的是从本页面的数据转到xxx.class页面里 intent.putExtra("name","zhangsan"); //这里可以打包成bundle, startActivity(intent);
取数据
Intent intent = getIntent(); String name = intent.getStringExtra("name"); //是上面页的数据名称name
对象数据(传送对象的时候)
- 实现Serializable接口
代码:
package com.itheima.rp;
import java.io.Serializable;
public class Student implements Serializable{
String name ;
int gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public Student(String name, int gender) {
super();
this.name = name;
this.gender = gender;
}
}
实现Parcelable接口
> 注意:要想传递集合这种数据类型,并且集合里面也是包装对象的,那么这个对象类,只能去实现parcelable , Serializable是办不到的。
代码如下:
package com.itheima.rp;
import java.io.Serializable;
import android.os.Parcel;
import android.os.Parcelable;
public class Teacher implements Parcelable{
String name ;
int gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public Teacher(String name, int gender) {
super();
this.name = name;
this.gender = gender;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
//把数据写到包里面,或者叫做通道里面 读写顺序必须要求一致 。 否则数据将会错乱。
out.writeString(name);
out.writeInt(gender);
}
public static final Parcelable.Creator<Teacher> CREATOR
= new Parcelable.Creator<Teacher>() {
public Teacher createFromParcel(Parcel in) {
return new Teacher(in);
}
public Teacher[] newArray(int size) {
return new Teacher[size];
}
};
private Teacher(Parcel in) {
//从包里面读取数据
name = in.readString();
gender = in.readInt();
}
}
3.案例—人品计算器
如图:
首先是在Layout创建三个布局
第一个先是Logo布局,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
/>
</RelativeLayout>
第二个是主页面的布局,代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=