当前位置:  编程技术>移动开发
本页文章导读:
    ▪手机载入窗口小部件时出现有关问题        手机载入窗口小部件时出现问题   把widget程序直接装在手机上试试! ......
    ▪ Activity状态小便        Activity状态小解 图片来自:/img/2012/09/19/2005192221.jpg 文章路径:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/   如上所示,Android 程序员可以决定一个 Activity 的“生”,但不能决定它.........
    ▪ 【转】TabActivity中某一个tab内切换activity的步骤       【转】TabActivity中某一个tab内切换activity的方法 本文转自:http://www.devdiv.com/forum.php?mod=viewthread&tid=47634&page=1   之前写的程序要用到TabActivity,其中一个tab下有个多级列表,其实就是像“.........

[1]手机载入窗口小部件时出现有关问题
    来源: 互联网  发布时间: 2014-02-18
手机载入窗口小部件时出现问题
  把widget程序直接装在手机上试试!

    
[2] Activity状态小便
    来源: 互联网  发布时间: 2014-02-18
Activity状态小解

图片来自:/img/2012/09/19/2005192221.jpg

文章路径:http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/

 

如上所示,Android 程序员可以决定一个 Activity 的“生”,但不能决定它的“死”,也就时说程序员可以启动一个 Activity,但是却不能手动的“结束”一个 Activity。

当你调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:告诉 Activity Manager 该 Activity 实例完成了相应的工作,可以被“回收”。

随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,同时原 Activity 被压入到栈的第二层,从 Active 状态转到 Paused 状态。

例如上面例子中:从 SplashActivity 中启动了 HelloWorldActivity,则当前处于栈顶端的是 HelloWorldActivity,第二层是 SplashActivity 。

当我们调用 SplashActivity.finish()方法时(我们是在SplashActivity中通过 SplashActivity.this.finish()调用的),SplashActivity 从 Active 状态转换 Stoped 状态,并被系统从栈中移除,标志可以被“回收”。


    
[3] 【转】TabActivity中某一个tab内切换activity的步骤
    来源: 互联网  发布时间: 2014-02-18
【转】TabActivity中某一个tab内切换activity的方法

本文转自:http://www.devdiv.com/forum.php?mod=viewthread&tid=47634&page=1

 

之前写的程序要用到TabActivity,其中一个tab下有个多级列表,其实就是像“设置‘切换页面一样,倒是如果直接启动一个activity,你会发现这个activity会变成全屏的,和之前的TabActivity半毛钱关系木有,所以,当时我感觉这个问题很麻烦呢。
后来我进去TabActivity里面发现,TabActivity其实就是继承自ActivityGroup,然后想起来之前看到的一片文章,用ActivityGroup 来实现自定义TabActivity功能,到这里其实应该就很简单了,无非是为TabActivity增加一个subActivity,不过这里我嫌麻烦,索性不和TabActivity扯上关系,于是 就用了一个嵌套ActivityGroup 的实现方式,其实就是把一个TabActivity的子页换成一个ActivityGroup ,然后这个ActivityGroup 下面再放上几个subactivity。当然,ActivityGroup 继承自Activity,所以你也要把它当作activity去mainfest注册一下。
     我马上就要坐车回家啦,时间比较紧,格式丑陋点,大家见谅。下面是关键代码:

     TabActivity的用法我就不说了,一搜一大把,关键是ActivityGroup 内activity的切换,一个继承自ActivityGroup 的class MyActivityGroup,MyActivityGroup在TabActivity里面的使用和普通activity一样,两个子activitySubAActivity.class和SubBActivity.class, 首先是MyActivityGroup 启动时要启动一个subactivity,我们启动SubAActivity.class,MyActivityGroup 的onCreate实现,

  • protected void onCreate(Bundle savedInstanceState) {
  •                 // TODO Auto-generated method stub
  •                 super.onCreate(savedInstanceState);
  •                 setContentView(R.layout.myactivitygroup);//其实这个layout里面只有一个id为myactivitygroup _view的LinearLayout
  •                 container=(LinearLayout) findViewById(R.id.myactivitygroup _view);//                
  •                 container.removeAllViews();  
  •         Intent intent=new Intent(MyActivityGroup .this,SubAActivity.class); 
  •         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  •         Window subActivity=getLocalActivityManager().startActivity("SubAActivity",intent);  
  •         View view=subActivity.getDecorView();
  •         container.addView(view);  //下面的代码是为了保证subactivity显示正常,必须写在这行后面,不然的话,view对象尚未产生,然后。。。你懂的,addView应该也是用InFlate实现的
  •         LinearLayout.LayoutParams params=(LayoutParams) view.getLayoutParams();
  •         params.width=LayoutParams.FILL_PARENT;
  •         params.height=LayoutParams.FILL_PARENT;
  •         view.setLayoutParams(params);
  •         }
  • 复制代码
    下面是从SubAActivity跳转到SubBActivity,(从SubBActivity返回SubAActivity实现方法一样,只不过放的位置不一样)假设我在一个listview的OnClickListener里面实现
  • list.setOnGroupClickListener(new OnGroupClickListener() {
  •                         
  •                         @Override
  •                         public boolean onGroupClick(ExpandableListView parent, View v,
  •                                         int groupPosition, long id) {
  •                                         LinearLayout container=(LinearLayout)((ActivityGroup)getParent()).getWindow().findViewById(R.id.myactivitygroup _view);//注意这里,还是获取group的view
  •                                         container.removeAllViews();  
  •                                 Intent intent=new Intent(SubAActivity.this, SubBActivity.class);  
  •                                 intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  •                                 Window subActivity=((ActivityGroup)ProvinceParkActivity.this.getParent()).getLocalActivityManager().startActivity("SubBActivity",intent);  
  •                                 View view=subActivity.getDecorView();
  •                                 container.addView(view);  
  •                                 LinearLayout.LayoutParams params=(LayoutParams) view.getLayoutParams();
  •                                 params.width=LayoutParams.FILL_PARENT;
  •                                 params.height=LayoutParams.FILL_PARENT;
  •                                 view.setLayoutParams(params);
  •                                         return true;
  •                         }
  •                 });
  • 复制代码
    仔细观察你会发现,这两段代码的实现思路是一样的,另外对于activitygroup的实现方式也大概能有些推测。
    在subactivity中不要调用finish,不然整个activity树都会挂掉,你仔细观察subactivity和tab之间的切换,会发现很有意思。

    刚才写了一半,帖子竟然刷新了,真是悲剧 - -#
    好啦,我现在要出发啦,祝大家新年快乐!~  

    补充内容 (2011-1-30 16:43):
    怎么不能编辑 - -
    我又想了下container.addView(view);  //下面的代码是为了保证subactivity显示正常,必须写在这行后面,不然的话,xxxxxxxxx
    这个说法应该是不对的,xxxxxx的部分。

     

    1 楼 MyLar 2011-09-22  
    跳转了几次之后报堆栈溢出了
    2 楼 javalover00000 2011-09-23  
    to: MyLar
    本文是转载来的,我自己还没实际写过这个代码,只是觉得这个方法应该是可行的,堆栈溢出,可能需要注意下,addView 应该是每次都是addView的关系吧,你可以通过上面的原文链接去问原作者
    3 楼 xyg1990 2011-09-28  
    感谢分享!!!!!!

        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    HTML教程 iis7站长之家
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3