From 6a65502e55b100159eeb5bd10e7b30eeac20dc5d Mon Sep 17 00:00:00 2001 From: endian11 <Dana_Lee1016@126.com> Date: 星期一, 28 九月 2020 18:07:53 +0800 Subject: [PATCH] 运用反射完成规则设置 --- app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java | 36 ++++++++++++++++++++---------------- 1 files changed, 20 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java index edf952f..4bf8aef 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/shop/ContentFragment.java @@ -26,6 +26,7 @@ */ public class ContentFragment extends SupportFragment { private static final String ARG_MENU = "arg_menu"; + private static final String ARG_POS ="arg_position"; private TextView mTvContent; private Button mBtnNext; @@ -34,11 +35,11 @@ private int currPos = 0; private String mMenu; - public static ContentFragment newInstance(String menu) { + public static ContentFragment newInstance(String menu,int pos) { Bundle args = new Bundle(); args.putString(ARG_MENU, menu); - + args.putInt(ARG_POS,pos); ContentFragment fragment = new ContentFragment(); fragment.setArguments(args); return fragment; @@ -51,22 +52,25 @@ Bundle args = getArguments(); if (args != null) { mMenu = args.getString(ARG_MENU); + currPos =args.getInt(ARG_POS); } - switch (mMenu){ - case "妗d綅鐩稿叧璁剧疆": - currPos = 0; + //杩愮敤鍙嶅皠鏉ュ疄鐜板悇涓狥ragmetn鐨勫垵濮嬪寲 - loadRootFragment(R.id.fl_content_container, FragmentSetting0 .newInstance(String.valueOf(currPos)),false,false ); - break; - case "甯哥敤鍙傛暟璁剧疆": - currPos = 1; - loadRootFragment(R.id.fl_content_container, FragmentSetting1.newInstance(String.valueOf(currPos)),false,false ); - break; - case "閫氱敤璇勫垽璁剧疆": - currPos = 2; - break; - case "涓婅溅璧锋璁剧疆": - break; + String clsName= "safeluck.drive.evaluation.fragment.rulefragments.FragmentSetting"; + + try { + Class cls = Class.forName(clsName+currPos); + Method method= cls.getMethod("newInstance",String.class); + SupportFragment invoke = (SupportFragment) method.invoke(null, String.valueOf(currPos)); + loadRootFragment(R.id.fl_content_container, invoke,false,false ); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (InvocationTargetException e) { + e.printStackTrace(); } } -- Gitblit v1.8.0