Android中封装通用页面逻辑,实现结构化,后期维护方便,可识别度高。
- 根目录下新建activity目录;
- 新建BaseActivity,继承自 AppCompatActivity,表示所有Activity的父类;
package com.ixuea.courses.mymusic.activity;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
/**
* 所有Activity父类
*/
public class BaseActivity extends AppCompatActivity {
/**
* 找控件
*/
protected void initViews(){
}
/**
* 设置数据
*/
protected void initDatum() {
}
/**
* 设置监听器
*/
protected void initListeners() {
}
/**
* 在onCreate方法后面调用
* @param savedInstanceState
*/
@Override
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
initViews();
initDatum();
initListeners();
}
}
- 新建 BaseCommonActivity,继承自 BaseActivity,表示通用界面逻辑;
package com.ixuea.courses.mymusic.activity;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Parcelable;
import android.text.TextUtils;
import android.view.Window;
import com.ixuea.courses.mymusic.util.Constant;
/**
* 通用界面逻辑
*/
public class BaseCommonActivity extends BaseActivity{
/**
* 启动界面
*
* @param clazz
*/
protected void startActivity(Class<? extends Activity> clazz) {
startActivity(new Intent(this, clazz));
}
/**
* 启动界面并关闭当前界面
*
* @param clazz
*/
protected void startActivityAfterFinishThis(Class<? extends Activity> clazz) {
startActivity(clazz);
finish();
}
/**
* 启动界面,可以传递一个字符串参数
*
* @param clazz
* @param id
*/
protected void startActivityExtraId(