(第一行代码)笔记(二)

四种基本布局

  • layout_gravity 指定控件位置
  • weight 按照比例指定控件的大小

  • LinearLayout 线性布局
    orientation vertical,horizontal
  • RelativeLayout 相对布局
  • FrameLayout 帧布局
  • TableLayout 表格布局
    stretchColumns 拉伸指定列自适应屏幕宽度
    TableRow layout_span

创建自定义控件

固定布局,通过layout布局文件自定义控件

LayoutInflater.from(context).inflate(R.layout.activity_main_layout,this);
ListView
优化使用ViewHolder
view.setTag(viewHolder)
单位
dp代替dx
动态获取屏幕密度值
getResources().getDisplayMetrics().xdpi;
getResources().getDisplayMetrics().ydpi;

.9图

碎片Fragment

新建类继承Fragment,重写onCreateView ,使用参数中的inflate.inflate()方法填充布局, 返回view
layout布局中添加fragment指定name属性为新建类

碎片动态添加

把Fragment布局放在FrameLayout布局中替换fragment布局

  1. 先new出继承Fragment,新实例
  2. FragmentManager manager = getFragmentManager();
  3. FragmentTransaction transaction = manager.beginTransaction();
  4. transaction.replace(R.id.content ,fragment);
  5. transaction.commit();

按back键返回上一个fragment,可transaction.addToBackStack(null);

getActivity()可获得与此fragment相关联的activity实例
getFragmentManager().findFragmentById()获取碎片的实例

碎片的生命周期

  1. onAttach 碎片与活动相关联的时候调用
  2. onCreateView 碎片创建视图(加载视图)时候调用
  3. onActivityCreated 确保与碎片相关联的活动一定已经创建完毕的时候调用
  4. onDestroyView 当与碎片相关联的视图被移除的时候调用
  5. onDetach 当碎片与活动解除关联的时候调用

碎片完整的生命周期
添加一个碎片

  1. onAttach
  2. onCreate
  3. onCreateView
  4. onActivityCreated
  5. onStart
  6. onResume
  7. 碎片已激活
  8. onPause
  9. onStop
  10. onDestroyView
  11. onDestroy
  12. onDetach
  13. 碎片被销毁

广播接收器

  1. 标准广播
    异步执行,所有广播接收器几乎同一时间接收到广播,没有先后顺序可言
  2. 有序广播
    同步执行,同一时刻只有一个广播接收器能收到这条广播消息,有先后顺序,并可以截断正在传递的广播。

动态注册监听网络变化

代码中注册为动态注册,
AndroidManifest.xml中注册为静态注册

创建广播接收器

继承BroadcastReceiver重写父类onReceive方法

MainActivity中代码`onCreate`方法中

IntentFilter intentFilter = new IntentFilter();
intentFileter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
netChangeReceiver(new 新对象)
registerReceiver(netChangeReceiver, intentFilter);

`onDestroy`方法中
unRegisterReceiver(newChangeReceiver);

重写`onReceive`方法
ConnectivityManager cm = getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = cm.getActiveNetworkInfo();

此服务监听需要申请权限。
ACCESS_NETWORK_STATE
开机启动权限BOOT_COMPLETED
开机监听RECEIVE_BOOT_COMPLETED
后台运行allowBackup
自定义广播消息
new Intent("消息的字段内容");
sendBroadcast(intent);

发送有序广播
sendOrderedBroadcaset(intent, null);
第二个参数是与权限相关的字符串

abortBroadcast拦截广播

以上为系统广播,下面为本地广播。

LocalBroadcastManager对广播进行管理
广播的最佳实践,强制下线

alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
需要申请权限。
广播里面启动活动,需要
intent.addFlag(Intent.FLAG_ACTIVITY_NET_TASK);
基于SSM框架的网红酒店预定系统,是一个集前台用户操作和后台管理员管理于一体的综合性平台。该系统旨在通过信息化手段,提高酒店预订的效率和用户体验。 系统的主要功能模块包括: 1. **用户管理**:允许用户注册、登录,查看个人信息,以及修改个人资料和密码。 2. **客房管理**:管理员可以添加、删除或修改客房信息,包括房型、价格、设施等。 3. **预订管理**:用户可以浏览可用房型,进行预订操作,管理员则可以管理预订订单,包括确认预订、办理入住和退房等。 4. **退订管理**:用户和管理员都可以处理预订的取消,管理员可以审核退订请求。 5. **系统管理**:管理员可以进行系统设置,包括权限管理、日志查看等。 系统的设计考虑了用户体验和管理员的便捷性,通过SSM框架的灵活性和MySQL数据库的稳定性,实现了数据的高效管理和处理。系统的前端界面友好,操作流程简洁,能够满足用户快速预订和查询的需求。同时,系统的后台管理功能强大,能够为管理员提供全面的数据分析和决策支持。 此外,系统还具有高度的安全性和稳定性,通过角色权限控制,确保了数据的安全性和系统的稳定运行。系统的开发和设计,不仅提升了网红酒店的品牌形象,也为用户带来了便捷的预订体验,进一步推动了酒店行业的信息化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值