一、MVC架构:
1.说明:
Model:从网络或本地获取数据、缓存数据,返回封装数据的domain类
View:用于显示的自定义View以及xml布局文件
Controller:对应Activity,调用Model层获取数据并设置到View中显示
2.交互图:
(2)Controller层,对应Activity,主要为UserDetailActivity类:
UserApiImpl类:
1.说明:
Model:从网络或本地获取数据、缓存数据,返回封装数据的domain类
View:用于显示的自定义View以及xml布局文件
Controller:对应Activity,调用Model层获取数据并设置到View中显示
2.交互图:
3.使用:
(1)View层,用于显示,主要为userdetail.xml布局:
<RelativeLayout 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"
tools:context="${relativePackage}.${activityClass}" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
(2)Controller层,对应Activity,主要为UserDetailActivity类:
UserDetailActivity类:
public class UserDetailActivity extends Activity implements APICallback {
private UserApi mUserApi; // Model层引用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.userdetail);
long userId = getIntent().getLongExtra("userId", 0);
mUserApi = new UserApiImpl(this, this);
//调用Model层获取数据
mUserApi.getUserDetail(Contants.API_ID_GET_USER_DETAIL, userId);
}
/**
* Model层回调,返回成功数据
*/
@Override
public void onSuccess(int apiId, Object data) {
if (apiId == Contants.API_ID_GET_USER_DETAIL) {
if (data != null) {
UserInfo userInfo = (UserInfo) data;
// 给View层设置数据显示
}
}
}
/**
* Model层回调,返回错误信息
*/
@Override
public void onFailure(int apiId, int code, String msg) {
if (apiId == Contants.API_ID_GET_USER_DETAIL) {
// 显示错误信息
}
}
}
(3)Model层,获取数据,主要为UserApi类和UserApiImpl类:
UserApi类:
public interface UserApi {
void getUserDetail(int apiId, long userId);
}
UserApiImpl类:
public class UserApiImpl extends BaseAPI implements UserApi {
private final String URL_GET_USER_DETAIL = Contants.BASE_URL + "/&