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

来源:互联网 发布:时时彩平台源码一条龙 编辑:程序博客网 时间:2024/06/04 20:07

之前在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>
 
原创粉丝点击