Sfoglia il codice sorgente

1.修改Android Apex Mobile,Result从Field Setting返回后List刷新失败。

Pen Li 8 anni fa
parent
commit
e1d1993b18

+ 39 - 30
Apex Mobile/app/src/main/java/com/usai/apex/Result/AMResultActivity.java

@@ -10,25 +10,18 @@ import android.util.Log;
 import android.view.Menu;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.View;
-import android.widget.Button;
 import android.widget.EditText;
 import android.widget.EditText;
-
 import com.usai.apex.ApexTrackingApplication;
 import com.usai.apex.ApexTrackingApplication;
-import com.usai.apex.BuildConfig;
 import com.usai.apex.CustomizeFieldsActivity;
 import com.usai.apex.CustomizeFieldsActivity;
 import com.usai.apex.DetailActivity;
 import com.usai.apex.DetailActivity;
 import com.usai.apex.R;
 import com.usai.apex.R;
 import com.usai.util.Network;
 import com.usai.util.Network;
 import com.usai.util.dbUtil;
 import com.usai.util.dbUtil;
-
-import org.bouncycastle.util.Arrays;
 import org.json.JSONArray;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONException;
 import org.json.JSONObject;
 import org.json.JSONObject;
-
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Set;
 import java.util.Set;
 
 
 /**
 /**
@@ -37,7 +30,7 @@ import java.util.Set;
 
 
 public class AMResultActivity extends SearchResultActivity {
 public class AMResultActivity extends SearchResultActivity {
 
 
-    private Boolean isDirty = false;
+    private static int REQUEST_FIELD_SETTING = 1000;
 
 
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
@@ -64,26 +57,43 @@ public class AMResultActivity extends SearchResultActivity {
     }
     }
 
 
     @Override
     @Override
-    protected void onStart() {
-        super.onStart();
-
-       if (isDirty) {
-
-           ArrayList<String> header_name = new ArrayList<String>();
-           ArrayList<String> header_aname = new ArrayList<String>();
-           getHeader(header_name,header_aname);
-           String fields = "";
-           Iterator<String> iterator = header_name.iterator();
-           while (iterator.hasNext()) {
-               String name = iterator.next();
-               fields = fields + name + ",";
-           }
-           fields = fields.substring(0,fields.length() - 1);
-           mParams.putString("columns",fields);
-
-           loadData();
-           isDirty = false;
-       }
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+
+//        resultListView.setAdapter(adapter);
+//
+//        Iterator<String> keyIterator = resultData.keys();
+//        ArrayList<String> keys = new ArrayList<>();
+//        while (keyIterator.hasNext()) {
+//            String key = keyIterator.next();
+//            keys.add(key);
+//        }
+//        for (int i = 0; i < keys.size(); i++) {
+//            String key = keys.get(i);
+//            resultData.remove(key);
+//        }
+//
+//        adapter.notifyDataSetChanged();
+
+        if (requestCode == REQUEST_FIELD_SETTING) {
+
+            ArrayList<String> header_name = new ArrayList<String>();
+            ArrayList<String> header_aname = new ArrayList<String>();
+            getHeader(header_name,header_aname);
+            String fields = "";
+            Iterator<String> iterator = header_name.iterator();
+            while (iterator.hasNext()) {
+                String name = iterator.next();
+                fields = fields + name + ",";
+            }
+            fields = fields.substring(0,fields.length() - 1);
+            mParams.putString("columns",fields);
+
+
+            loadData();
+
+        }
+
     }
     }
 
 
     // 动态修改Menu
     // 动态修改Menu
@@ -388,13 +398,12 @@ public class AMResultActivity extends SearchResultActivity {
 
 
     public void fieldSetting() {
     public void fieldSetting() {
 
 
-        isDirty = true;
         Intent intent = new Intent();
         Intent intent = new Intent();
         intent.setClass(this, CustomizeFieldsActivity.class);
         intent.setClass(this, CustomizeFieldsActivity.class);
         intent.putExtra("user", ApexTrackingApplication.get_user());
         intent.putExtra("user", ApexTrackingApplication.get_user());
         intent.putExtra("function_name", mParams.getString("module_name"));
         intent.putExtra("function_name", mParams.getString("module_name"));
         intent.putExtra("behavior", Network.BEHAVIOR_RESULT);
         intent.putExtra("behavior", Network.BEHAVIOR_RESULT);
-        startActivity(intent);
+        startActivityForResult(intent,REQUEST_FIELD_SETTING);
 
 
     }
     }
 
 

+ 44 - 31
Apex Mobile/app/src/main/java/com/usai/apex/Result/SearchResultActivity.java

@@ -10,6 +10,7 @@ import android.database.DataSetObserver;
 import android.graphics.Color;
 import android.graphics.Color;
 import android.net.Uri;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AlertDialog;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.app.AppCompatActivity;
 import android.text.Html;
 import android.text.Html;
@@ -55,7 +56,7 @@ import java.util.Iterator;
 public class SearchResultActivity extends AppCompatActivity implements AbsListView.OnScrollListener {
 public class SearchResultActivity extends AppCompatActivity implements AbsListView.OnScrollListener {
 
 
     protected Bundle mParams;
     protected Bundle mParams;
-    protected JSONObject resultData;
+    protected JSONObject resultData = new JSONObject();
 
 
     protected Context mContext;
     protected Context mContext;
     protected ListView resultListView;
     protected ListView resultListView;
@@ -411,12 +412,19 @@ public class SearchResultActivity extends AppCompatActivity implements AbsListVi
 
 
                 try {
                 try {
 
 
-                    mParams.putInt("offset",adapter.getCount());
+                    mParams.putInt("offset",0);
                     mParams.putInt("limit",25);
                     mParams.putInt("limit",25);
-                    resultData = Network.query(mParams);
-                    if (resultData == null) {
-                        resultData = new JSONObject();
+                    JSONObject new_resultData = Network.query(mParams);
+
+                    if (new_resultData != null) {
+                        Iterator<String> iterator = new_resultData.keys();
+                        while (iterator.hasNext()) {
+                            String key = iterator.next();
+                            Object value = new_resultData.get(key);
+                            resultData.put(key,value);
+                        }
                     }
                     }
+
                     runOnUiThread(new Runnable() {
                     runOnUiThread(new Runnable() {
                         @Override
                         @Override
                         public void run() {
                         public void run() {
@@ -667,12 +675,12 @@ public class SearchResultActivity extends AppCompatActivity implements AbsListVi
 
 
         @Override
         @Override
         public void registerDataSetObserver(DataSetObserver observer) {
         public void registerDataSetObserver(DataSetObserver observer) {
-
+            super.registerDataSetObserver(observer);
         }
         }
 
 
         @Override
         @Override
         public void unregisterDataSetObserver(DataSetObserver observer) {
         public void unregisterDataSetObserver(DataSetObserver observer) {
-
+            super.unregisterDataSetObserver(observer);
         }
         }
 
 
         @Override
         @Override
@@ -776,10 +784,13 @@ public class SearchResultActivity extends AppCompatActivity implements AbsListVi
                margin_b = convertDp2Px(margin_b);
                margin_b = convertDp2Px(margin_b);
                margin_r = convertDp2Px(margin_r);
                margin_r = convertDp2Px(margin_r);
 
 
+
                HorizontalScrollView.LayoutParams listViewLayoutParams = (HorizontalScrollView.LayoutParams)resultListView.getLayoutParams();
                HorizontalScrollView.LayoutParams listViewLayoutParams = (HorizontalScrollView.LayoutParams)resultListView.getLayoutParams();
                listViewLayoutParams.width = width;
                listViewLayoutParams.width = width;
                resultListView.setLayoutParams(listViewLayoutParams);
                resultListView.setLayoutParams(listViewLayoutParams);
 
 
+
+
                JSONArray obj = (JSONArray)getItem(position);
                JSONArray obj = (JSONArray)getItem(position);
                JSONArray arr_col = header.getJSONArray("col");
                JSONArray arr_col = header.getJSONArray("col");
 
 
@@ -822,27 +833,27 @@ public class SearchResultActivity extends AppCompatActivity implements AbsListVi
                        TextView tv = (TextView)holder.row.findViewById(i);
                        TextView tv = (TextView)holder.row.findViewById(i);
                        if (tv == null) {
                        if (tv == null) {
                            tv = new TextView(mContext);
                            tv = new TextView(mContext);
-                           tv.setWidth(col_w);
-                           tv.setHeight(height);
-                           tv.setGravity(convertGravity("h_align",h_align) | convertGravity("v_center",v_center));
-
-
 
 
+                           tv.setGravity(convertGravity("h_align",h_align) | convertGravity("v_center",v_center));
                            tv.setSingleLine();
                            tv.setSingleLine();
                            tv.setEllipsize(TextUtils.TruncateAt.END);
                            tv.setEllipsize(TextUtils.TruncateAt.END);
-
-                           tv.setPadding(margin_l,margin_t,margin_r,margin_b);
-
-                           TableRow.LayoutParams tvLayoutParams = new  TableRow.LayoutParams(col_w, height);
-//                       tv.setLayoutParams(tvLayoutParams);
-
                            tv.setId(i);
                            tv.setId(i);
-                           holder.row.addView(tv,i,tvLayoutParams);
                            tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.result_black_border));
                            tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.result_black_border));
-
                            tv.setOnTouchListener(resultRowClickListener);
                            tv.setOnTouchListener(resultRowClickListener);
+                       } else {
+                           holder.row.removeView(tv);
                        }
                        }
 
 
+                       // layout
+                       tv.setWidth(col_w);
+                       tv.setHeight(height);
+                       tv.setPadding(margin_l,margin_t,margin_r,margin_b);
+
+                       TableRow.LayoutParams tvLayoutParams = new  TableRow.LayoutParams(col_w, height);
+
+                       holder.row.addView(tv,i,tvLayoutParams);
+
+                       // content
                        tv.setTextColor(Color.parseColor(f_color));
                        tv.setTextColor(Color.parseColor(f_color));
 
 
 
 
@@ -913,25 +924,27 @@ public class SearchResultActivity extends AppCompatActivity implements AbsListVi
                        TextView tv = (TextView) holder.row.findViewById(i);
                        TextView tv = (TextView) holder.row.findViewById(i);
                        if (tv == null) {
                        if (tv == null) {
                            tv = new TextView(mContext);
                            tv = new TextView(mContext);
-                           tv.setWidth(col_w);
-                           tv.setHeight(col_h);
-                           tv.setGravity(convertGravity("h_align",h_align) | convertGravity("v_center",v_center));
-
 
 
+                           tv.setGravity(convertGravity("h_align",h_align) | convertGravity("v_center",v_center));
                            tv.setSingleLine();
                            tv.setSingleLine();
                            tv.setEllipsize(TextUtils.TruncateAt.END);
                            tv.setEllipsize(TextUtils.TruncateAt.END);
-
-                           tv.setPadding(margin_l,margin_t,margin_r,margin_b);
-
-                           TableRow.LayoutParams tvLayoutParams = new  TableRow.LayoutParams(col_w, col_h);
-
                            tv.setId(i);
                            tv.setId(i);
-                           holder.row.addView(tv,i,tvLayoutParams);
-
                            tv.setOnTouchListener(resultRowClickListener);
                            tv.setOnTouchListener(resultRowClickListener);
                            tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.result_black_border));
                            tv.setBackgroundDrawable(getResources().getDrawable(R.drawable.result_black_border));
+                       } else {
+                           holder.row.removeView(tv);
                        }
                        }
 
 
+                       // layout
+                       tv.setWidth(col_w);
+                       tv.setHeight(col_h);
+                       tv.setPadding(margin_l,margin_t,margin_r,margin_b);
+
+                       TableRow.LayoutParams tvLayoutParams = new  TableRow.LayoutParams(col_w, col_h);
+                       holder.row.addView(tv,i,tvLayoutParams);
+
+                       // content
+
                        tv.setTextColor(Color.parseColor(col_f_color));
                        tv.setTextColor(Color.parseColor(col_f_color));
 
 
                        if (value.contains("</")) {
                        if (value.contains("</")) {

+ 3 - 1
Apex Mobile/app/src/main/res/layout/activity_search_result.xml

@@ -16,6 +16,7 @@
         android:background="#ffffff"
         android:background="#ffffff"
         >
         >
 
 
+
         <ListView
         <ListView
             android:id="@+id/result_table_list"
             android:id="@+id/result_table_list"
             android:layout_width="wrap_content"
             android:layout_width="wrap_content"
@@ -23,8 +24,9 @@
             android:background="#ffffff"
             android:background="#ffffff"
             >
             >
 
 
-
         </ListView>
         </ListView>
+
+
     </HorizontalScrollView>
     </HorizontalScrollView>
 
 
 
 

BIN
Apex Mobile/captures/com.usai.apex_2018.02.07_17.14.li