Activity跳转到Fragment的方法
程序员文章站
2022-05-28 22:40:00
...
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"); } }
推荐阅读
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
flag_activity_clear_top php采集时被封ip的解决方法
-
Android实现从activity中停止Service的方法
-
Android中使用Intent在Activity之间传递对象(使用Serializable或者Parcelable)的方法
-
android显示意图激活另一个Activity的方法
-
Android编程开发之TextView单击链接弹出Activity的方法
-
Android Activity与Fragment之间的跳转实例详解
-
Android编程实现两个Activity相互切换而不使用onCreate()的方法
-
Android编程获取并设置Activity亮度的方法
-
在uiview 的tableView中点击cell进入跳转到另一个界面的实现方法