Activity跳转到Fragment的方法(Intent)

提示:小美女小帅哥,点个赞点个关注,不秃头


Intent踩坑

一、intent跳转编译错误?

使用intent进行页面跳转时候出现BUg`
在这里插入图片描述

二、问题原因

activity不能直接用Intent跳转fragment,因此要用个例外的办法处理。刚好我的Activity有个gridView,而这个gridVIew点击里面的图片时,适当跳转到对应的fragment。我的方法是先跳到一个新的Activity里,然后根据这个Activity跳转以下是android代码,这个是跳转中转的类,利用这个类里面的FrameLayout,直接加载你的fragment(其实相当于是将fragment嵌套在Activity里面) ,不过要将类名传递给这个中转类

三、解决方案

代码如下(示例):

public class MyFragment extends FragmentActivity {
	public String className = "";
	public FrameLayout frameLayout;
 
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        setContentView(R.layout.sys_chg_fragment);  
        init();//初始化
		getValue();//获取类名
		if(StringUtils.isNotEmpty(className)){
			//由于广泛用了Fragment,因此,这里要用这个方法调用
			FragmentManager fm =  getSupportFragmentManager(); 
			// 开启Fragment事务  
	        FragmentTransaction transaction = fm.beginTransaction(); 
	        try{
	        	Class<?> fragClass = Class.forName(className);//反射动态获取类
	        	Object obj = fragClass.newInstance();
	        	Fragment fragment = (Fragment)obj;//类型转换为Fragment
	        	//跳转
	             transaction.replace(R.id.chg_fragment$framelayout, fragment);  
	             transaction.commit();
	        }catch(Exception e){
	        	Logger.error("##############", e, "class error");
	        }
	        
	       
		}
	}
 
	public void init(){
		//初始化
		frameLayout = (FrameLayout)findViewById(R.id.chg_fragment$framelayout);
	}
	
	//获取传入值
	public void getValue(){
		Intent intent =getIntent();
		className =  intent.getExtras().getString("className");
	}
}

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值