| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> ActivityGroupActivityTabHost注意问题,vs开发android教程 -> 正文阅读 |
|
[移动开发]ActivityGroupActivityTabHost注意问题,vs开发android教程 |
View view = getLocalActivityManager().startActivity( PollingManagementActivitySub.class.getSimpleName(), intent) .getDecorView()
; Holder.linearLayout.addView(view); } 注意:当我们第一次点击TabWeidget进入Activity的时候,我们需要把第一次进入的Activity当作父Activity,然后在onCreate方法里也用这种方法跳转到我们需要的Activity中,这样方便我们在以后各个子Activity跳转的时候更容易操作… 上面的代码的一些个小注意问题: 1.1、intent.setFlags设置成国single_top,表示我们在启动这个Activity之后,在Activity没有被销毁的情况下,不会重新创建一个Activity; 1.2、view 我们无论是在子Activity中跳转还是从父Activity跳转到子Activity中,我们这里的view都是父Activity中的view。这个view被当作一个容器添加和删除各个Activity 子类中跳转Activity方法: private void startPollingResultActivity(PollingRequestvo pollingRequestvo, int type) { Intent intent = new Intent(PollingManagementActivitySub.this, PollingResultActivity.class); Bundle bundle = new Bundle(); bundle.putSerializable(“pollingRequestvo”, pollingRequestvo); bundle.putInt(“type”, type); intent.putExtras(bundle); Holder.viewSwitcher.removeAllViews(); View view = ((ActivityGroup) getParent()) .getLocalActivityManager() .startActivity(PollingResultActivity.class.getSimpleName(), intent).getDecorView(); Holder.viewSwitcher.addView(view); currentActivity = false; } 这里的view实际是我们的父Activity(ActivityGroup)中的容器。 1.3、getLocalActivityManager().startActivity()前面一个参数PollingManagementActivitySub.class也是在非常重要,我在项目开发的时候,被它坑死了 ,它可以随便设置,但是当我们需要在各个Activity跳转(跳转回来)的时候(并且不要求重新创建新的Activity的时候),这个值必须保证相同,如果要求重新创建Activity,这个值可以不相同。 3、当我们在各个子Activity之间跳转的时候,希望点击返回按钮进行不同的操作,会出现各种出乎意料的操作,我们应该监听返回按钮,再进行具体操作,当然监听返回按钮不是用onBackPress()方法,而是在父类(即ActivityGroup中)调用dispatchKeyEvent这个方法进行监听,这样无论我们在父Activity还是在子Activity中点击按键都会被分发这个按键事件,如果这个事件处理完毕返回true: 如下: @Override public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == event.ACTION_DOWN) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_BACK: String activityName = getCurrentActivity().getClass() .getSimpleName(); if (activityName.equals(“PollingManagementActivitySub”)) { new AlertDialog.Builder(this) .setTitle(“注意”) .setMessage(“确定要退出手机网管吗?”) .setIcon(android.R.drawable.ic_menu_help) .setPositiveButton(“确定”, new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int which) { dialog.dismiss(); finish(); } }) .setNegativeButton(“取消”, new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialog, int which) { dialog.cancel(); } }).show(); } else if (activityName.equals(“PollingResultActivity”)) { LinearLayout container = (LinearLayout) findViewById(R.id.viewSwitcher); container.removeAllViews(); Intent intent = new Intent(getCurrentActivity(), PollingManagementActivitySub.class); |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:00:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |