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