最近看到好多opengl牛人写了些立方体,卷页之类的华丽的代码,这些立体面上都是些图片之类的ImageView的组件,许多人问能不能将一些Activity显示到上面。
最近我在看TabActivity的时候,发现这是可以实现的。
Java代码
public View activityToView(Context parent,Intent intent){
LocalActivityManager mLocalActivityManager = new LocalActivityManager(parent,true);
final Window w = mLocalActivityManager.startActivity(
"TagName", intent);
final View wd = w != null ? w.getDecorView() : null;
if (wd != null) {
wd .setVisibility(View.VISIBLE);
wd .setFocusableInTouchMode(true);
((ViewGroup) wd ).setDescendantFocusability(
FOCUS_AFTER_DESCENDANTS);
}
return wd ;
}
大家知道,tabactivity既可以加载普通的layout布局文件,view组件,还有Intent(指定的activity),看下通讯录的一段代码:
Java代码
Intent intent = new Intent("com.android.phone.action.RECENT_CALLS");
intent.setClass(this, RecentCallsListActivity.class);
mTabHost.addTab(mTabHost.newTabSpec("call_log")
.setIndicator(getString(R.string.recentCallsIconLabel),
getResources().getDrawable(R.drawable.ic_tab_recent))
.setContent(intent));
setContent()方法其实是得到一个new IntentContentStrategy(mTag, intent)的实例。
当当前的Intent的tab获得焦点的时候,TabHost会调用IntentContentStrategy的getContentView()方法,将要显示的activit转化为view显示在Tabweight的下面。
getContentView()的实现方法就类似于前面说的activityToView()方法。具体的大家可以去看TabHost的源码。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/csuhanyong/archive/2011/06/19/6554799.aspx
===================================
我在使用这个方法时遇到了一点问题
我在一个普通的activity中使用这个方法 想把另一个activity转换成view显示
但是运行出错:Activities can't be added until the containing group has been created.
后来经查找在这里解决了问题:http://topic.csdn.net/u/20110821/22/29c9a9f8-f5ae-4a3d-a2de-ae6af955e05d.html
虽然问题解决了 但是还不明白原因。。
分享到:
相关推荐
本篇将深入探讨如何在同一个Android Activity中实现多个ListView的集成和交互。 首先,我们需要理解ListView的基本原理。ListView是Android提供的一种可滚动视图,用于显示一列可滚动的数据项。它通过Adapter(如...
在Android应用开发中,Activity是Android系统中的一个核心组件,它是用户与应用程序交互的主要界面。Activity界面的转化涉及到了Android的生命周期、Intent机制、启动模式、任务栈管理等多个关键知识点,下面将对...
4. **Intent和Activity栈**:在实现滑动切换Activity的方式中,每次滑动可以启动一个新的Activity并将其压入栈顶,然后使用Back键可以按照栈的顺序回退到之前的Activity。但是这种方式可能导致内存占用过多,所以不...
ListView是一个可滚动的视图,用于显示一系列的数据项,通常与Adapter一起使用,Adapter负责将数据转化为ListView可显示的View。在Android中,我们通常创建一个继承自BaseAdapter的自定义适配器,重写其中的几个关键...
本教程将深入讲解如何在Android中进行Activity间的转换,并通过一个简单的小示例来演示具体实现。 首先,理解Activity的生命周期是至关重要的。Activity有多种状态,如运行(Running)、暂停(Paused)、停止...
Adapter是一个接口,它为不同的视图提供数据,并负责将数据转化为可显示的视图组件。在ListView中,每个列表项都是一个View,由Adapter负责创建和填充。当用户与这些子View交互时,如点击按钮或输入文本,我们通常...
在Android开发中,自定义PopWindow是一个非常实用的技术,它允许开发者创建自定义的弹出窗口,能够在所有视图之上显示,提供丰富的交互体验。本文将深入探讨如何实现这样一个功能,以及其背后的原理和注意事项。 ...
本教程将详细介绍如何在Android中创建一个基于ListView的实例,并实现Activity之间的跳转。 一、ListView的使用 1. **布局文件**: 首先,我们需要在XML布局文件中定义ListView。例如,在`food_listview.xml`中: ...
为了实现这一功能,我们需要创建一个适配器(Adapter),它是ListView和数据源之间的桥梁,负责将数据转化为ListView中的一个个视图。 适配器通常继承自BaseAdapter或ArrayAdapter。BaseAdapter是最基础的适配器,...
它允许你在同一个Activity中展示多个不同的Fragment或者View,每个标签代表一个不同的界面。TabHost包含两部分:TabWidget和FrameLayout。TabWidget用于显示各个标签,而FrameLayout则用于加载与每个标签关联的视图...
在Android开发中,自定义接口并将其应用于Activity与Adapter之间的通信是常见的做法,尤其是在处理点击事件和解决滑动错位问题时。这篇文章将深入探讨如何通过这个方法来优化用户界面的交互体验。 首先,让我们理解...
本文将详细讲解如何实现一个可以循环显示10张GIF图片的功能,这对于初学者来说是一次很好的学习机会。 首先,我们需要理解GIF图片的特性。GIF是一种支持动画的图像格式,它通过存储一系列连续的帧来实现动态效果。...
在Android开发中,有时我们需要将一个View转换成图片进行保存或者分享,比如截图、制作预览图等。这个过程涉及到的主要知识点是View的绘制和Bitmap的处理。下面将详细讲解如何实现这一功能。 首先,我们要了解`View...
在Android开发中,自定义View是一种常见的需求,特别是在创建复杂用户界面或图形展示时,比如在本例中,我们需要实现一个股票趋势图。这个过程涉及到对Android视图系统、绘图机制以及数据处理的理解。 首先,自定义...
"安卓activity签字签名"这个话题涉及到在Android应用中实现一个功能,让用户能够在屏幕上签字并保存其签名,通常这会涉及到图像处理和文件存储。下面将详细讨论这个主题。 1. **Activity签名**: 在Android中,...
ListView是Android提供的一个可滚动视图,用于展示多个同类型的项。每个项通常由一个布局文件(XML)定义,通过Adapter进行数据绑定。Adapter是连接ListView与数据源的桥梁,负责将数据转化为列表项视图。 二、分页...
GridView的工作原理是通过Adapter类来绑定数据源,它会自动将数据转化为View并填充到GridView的每一个单元格中。Adapter有多种类型,如BaseAdapter、SimpleAdapter和CursorAdapter等,其中BaseAdapter是最基础的,...
例如,我们可以创建一个名为`activity_main.xml`的布局文件: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height=...
在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...
Adapter负责将数据库中的数据转化为ListView可显示的View。在`getView()`方法中,根据数据项创建或复用一个View,并填充数据。 5. ListView配置: 在布局文件中添加ListView,并为它设置Adapter。在Activity或...