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

之前在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>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值