常用布局
- 约束布局 相对定位排列
- 线性布局 水平或者垂直排列
- 帧布局 控件层叠加
- 表格布局 表格排列
传递数据的几种方式
使用Intent 传递数据
使用 bundle 传递数据
代码封装
package com.example.myapplication.core;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
/**
* @Author lyr
* @create 2020/9/24 14:02
*/
public abstract class BaseActivity extends AppCompatActivity {
protected final void jumpPage(Context fromPage, Class<? extends AppCompatActivity> toPage) {
Intent intent = new Intent(fromPage, toPage);
startActivity(intent);
}
/**
* 页面跳转
*
* @param fromPage
* @param toPage
* @param data
*/
protected final void jumpPage(Context fromPage, Class<? extends AppCompatActivity> toPage, Bundle data) {
Intent intent = new Intent(fromPage, toPage);
if (data != null) {
intent.putExtras(data);
}
startActivity(intent);
}
/*
*
* 需要重写 onActivityResult 方法 获取状态码
*
* */
/**
* 带有状态码的页面跳转
*
* @param fromPage
* @param toPage
* @param statusCode
*/
protected final void jumpPageForResult(Context fromPage, Class<? extends AppCompatActivity> toPage, int statusCode) {
jumpPageForResult(fromPage, toPage, null, statusCode);
}
/**
* 带有状态码的页面跳转
*
* @param fromPage
* @param toPage
* @param data
* @param statusCode
*/
protected final void jumpPageForResult(Context fromPage, Class<? extends AppCompatActivity> toPage, Bundle data, int statusCode) {
Intent intent = new Intent(fromPage, toPage);
if (data != null) {
intent.putExtras(data);
}
startActivityForResult(intent, statusCode);
}
/**
* 对关闭当前页面的封装
*
* @param resultData 页面返回结果
* @param statusCode 状态码
*/
protected final void closeCurrentPage(Bundle resultData, int statusCode) {
Intent intent = new Intent();
if (resultData != null) {
intent.putExtras(resultData);
}
setResult(statusCode, intent);
finish();
}
/**
* 关闭页面
*/
protected final void closeCurrentPage() {
finish();
}
}