您的位置:首页 > 移动开发 > Android开发

android 中把一个activity 转换成一个view

2013-10-29 10:59 134 查看
之前在stackoverflow上找到过这个问题的解决方法,虽然能用,但是并不针对此最初问题的解决方法。在此把问题和解决方法一并总结如下:

问题:android 中把一个普通的activity转换成一个view,加载到想配置的布局当中去

解决方法步骤:

1、定义全局LocalActivityManager变量

LocalActivityManager mLocalActivityManager;

oncreate()方法实例化mLocalActivityManager = new LocalActivityManager((Activity) context, true);

2、在oncreate,onresume,onpause方法中分别加入如下代码:

oncreate()--------------mLocalActivityManager.dispatchCreate(arg0);参数arg0为oncreate方法的形参

onpause()--------------mLocalActivityManager.dispatchPause(isFinishing());

onresume()--------------mLocalActivityManager.dispatchResume();

3、这一步就是转换的实质代码了

public View activityToView(Context parent, Intent intent) {
final Window w = mLocalActivityManager.startActivity(parent.getClass().getName(), intent);
final View wd = w != null ? w.getDecorView() : null;
if (wd != null) {
wd.setVisibility(View.VISIBLE);
wd.setFocusableInTouchMode(true);
((ViewGroup) wd).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);}
return wd;
}
 
如果不加第二步代码会报如下错误:
Caused by: java.lang.IllegalStateException: Activities can't be added until the containing group has been created.
解决方法来自:stackoverflow  链接:<a target=_blank target="_blank" href="http://stackoverflow.com/questions/3163884/android-tabhost-without-tabactivity">http://stackoverflow.com/questions/3163884/android-tabhost-without-tabactivity</a>
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: