Browse Source

添加缓存

RaoMeng 9 years ago
parent
commit
81cd94a15a

+ 20 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -14,6 +14,7 @@ import android.util.Log;
 import com.android.volley.RequestQueue;
 import com.android.volley.toolbox.Volley;
 import com.baidu.mapapi.SDKInitializer;
+import com.lidroid.xutils.DbUtils;
 import com.lidroid.xutils.HttpUtils;
 import com.nostra13.universalimageloader.cache.disc.impl.TotalSizeLimitedDiscCache;
 import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
@@ -33,6 +34,7 @@ import com.xzjmyk.pm.activity.bean.User;
 import com.xzjmyk.pm.activity.db.SQLiteHelper;
 import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
+import com.xzjmyk.pm.activity.util.SharedUtil;
 import com.xzjmyk.pm.activity.volley.FastVolley;
 
 import org.apache.http.cookie.Cookie;
@@ -51,6 +53,7 @@ public class MyApplication extends Application {
 
     public static RequestQueue mRequestQueue;
     public static HttpUtils mHttpUtils;
+    public static DbUtils mDbUtils;
 
     private static MyApplication INSTANCE = null;
 
@@ -68,6 +71,9 @@ public class MyApplication extends Application {
 
         mHttpUtils = new HttpUtils();
         configHttpUtils();
+        initDbUtils();
+
+        SharedUtil.init(this);
         initShareAPI();
 //        CrashReport.initCrashReport(getApplicationContext(), "900050585", false);
         PreferenceUtils.putBoolean(this, Constants.IS_NOTIFICATION, false);//不进行通知
@@ -108,7 +114,20 @@ public class MyApplication extends Application {
         PlatformConfig.setSinaWeibo("493318722", "7def652c3683603b08bab87d34b1f944");
         PlatformConfig.setQQZone("1104894295", "Nk8zMIz5YSqwRQ1F");
     }
-    
+
+
+    private final String mDbDir = "/sdcard/uu/database";//数据库存放路径
+    private final String mDbName = "uuhulian.db";//数据库名称
+    /**
+     * 配置DbUtils
+     */
+    private void initDbUtils() {
+        DbUtils.DaoConfig daoConfig = new DbUtils.DaoConfig(this);
+        daoConfig.setDbDir(mDbDir);
+        daoConfig.setDbName(mDbName);
+        mDbUtils = DbUtils.create(daoConfig);
+    }
+
     /**
      * 为HttpUtils配置参数
      */

+ 22 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/SubscriptionNumber.java

@@ -5,10 +5,28 @@ package com.xzjmyk.pm.activity.bean;
  * Created by RaoMeng on 2016/9/21.
  */
 public class SubscriptionNumber {
-    private int id;
-    private String title;
-    private String kind;
-    private int status;
+    private int id;//订阅号id
+    private String title;//订阅号标题
+    private String kind;//订阅号类型(公、私)
+    private int status;//订阅号状态(已订阅,已申请,未订阅)
+    private String type;//订阅号类别
+    private String master;//订阅号所属账套
+
+    public String getMaster() {
+        return master;
+    }
+
+    public void setMaster(String master) {
+        this.master = master;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
 
     public int getStatus() {
         return status;

+ 33 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeDetailActivity.java

@@ -12,6 +12,9 @@ import android.view.Gravity;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -41,7 +44,7 @@ public class SubscribeDetailActivity extends BaseActivity {
     private ImageView mHeadImageView;
     private TextView mNameTextView,mTitleTextView,mContentTextView;
     private Button mApplyButton;
-    private int mSubId;
+    private int mSubId = -1;
     private String mSubName;
     private int mSubStatus = -1;
     private int mIsApplied = -2;
@@ -51,6 +54,9 @@ public class SubscribeDetailActivity extends BaseActivity {
     private PopupWindow mCancleWindow;
     private String flag;
 
+    private WebView mWebView;
+    private String subscribeUrl;
+
     private Handler mHandler = new Handler(){
         @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
         @Override
@@ -141,6 +147,9 @@ public class SubscribeDetailActivity extends BaseActivity {
         mApplyButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
+                if (flag == null || mSubId == -1){
+                    return;
+                }
                 if ("all".equals(flag)) {
                     sendApplySubs();
                 } else if ("my".equals(flag)) {
@@ -246,6 +255,11 @@ public class SubscribeDetailActivity extends BaseActivity {
 //                mApplyButton.setEnabled(false);
 //            }
         }
+        if (subscribeUrl != null){
+            LinkedHashMap<String,String> headers = new LinkedHashMap<>();
+            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mContext, "sessionId"));
+            mWebView.loadUrl(subscribeUrl, headers);
+        }
     }
 
     private void initViews() {
@@ -254,5 +268,23 @@ public class SubscribeDetailActivity extends BaseActivity {
         mTitleTextView = (TextView) findViewById(R.id.subscribe_detail_title_tv);
         mContentTextView = (TextView) findViewById(R.id.subscribe_detail_content_tv);
         mApplyButton = (Button) findViewById(R.id.subscribe_detail_apply_btn);
+        mWebView = (WebView) findViewById(R.id.subscribe_detail_wv);
+
+        WebSettings webSettings = mWebView.getSettings();
+        //允许加载JavaScript
+        webSettings.setJavaScriptEnabled(true);
+        //网页自适应屏幕
+        webSettings.setUseWideViewPort(true);
+        webSettings.setLoadWithOverviewMode(true);
+
+        webSettings.setDomStorageEnabled(true);
+        mWebView.setWebViewClient(new WebViewClient());
+        subscribeUrl = Constants.getAppBaseUrl(this) + "common/charts/mobilePreview.action?id="
+                +mSubId+"&sessionId="+CommonUtil.getSharedPreferences(ct, "sessionId")
+                +"&sessionUser="+CommonUtil.getSharedPreferences(ct, "erp_username")
+                +"&master="+CommonUtil.getSharedPreferences(ct,"erp_master");
+//        subscribeUrl = "http://192.168.253.200:8080/spring-mvc-showcase/client/info";
+
+        Log.d("subsurl: ",subscribeUrl);
     }
 }

+ 59 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java

@@ -5,6 +5,7 @@ import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteStatement;
 
+import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
 import com.xzjmyk.pm.activity.ui.erp.entity.B2BMsg;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.Hrorgs;
@@ -162,7 +163,7 @@ public class DBManager {
         for (int i = 0; i < employeesEntities.size(); i++) {
             EmployeesEntity entity = employeesEntities.get(i);
             sta.bindString(1, String.valueOf(entity.getEM_ID()));
-            sta.bindString(2, entity.getEM_CODE()==null?"null":entity.getEM_CODE());
+            sta.bindString(2, entity.getEM_CODE() == null ? "null" : entity.getEM_CODE());
             sta.bindString(3, entity.getEM_NAME());
             sta.bindString(4, entity.getEM_POSITION());
             sta.bindString(5, entity.getEM_DEFAULTORNAME() == null ? "未填写" : entity.getEM_DEFAULTORNAME());
@@ -474,6 +475,63 @@ public class DBManager {
         return model;
     }
 
+    /*******************************************
+     * 未订阅表AllSubs操作
+     */
+    public void saveToAllSubs(SubscriptionNumber subscriptionNumber) {
+        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master) values (?,?,?,?,?,?)";
+        SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
+        sqLiteStatement.bindLong(1,subscriptionNumber.getId());
+        sqLiteStatement.bindString(2, subscriptionNumber.getTitle());
+        sqLiteStatement.bindString(3, subscriptionNumber.getKind());
+        sqLiteStatement.bindLong(4, subscriptionNumber.getStatus());
+        sqLiteStatement.bindString(5, subscriptionNumber.getType());
+        sqLiteStatement.bindString(6, subscriptionNumber.getMaster());
+        sqLiteStatement.execute();
+    }
+
+    public List<SubscriptionNumber> queryFromAllSubs(String[] selectionArgs, String selection){
+        List<SubscriptionNumber> subscriptionNumbers = new ArrayList<SubscriptionNumber>();
+        String table = "AllSubs";
+        String groupBy = null;
+        String having = null;
+        String orderBy = null;
+        Cursor cursor = db.query(table, null, selection, selectionArgs, groupBy, having, orderBy);
+        while (cursor.moveToNext()) {
+            SubscriptionNumber subscriptionNumber = new SubscriptionNumber();
+            subscriptionNumber.setId(cursor.getInt(cursor.getColumnIndex("subs_id")));
+            subscriptionNumber.setTitle(cursor.getString(cursor.getColumnIndex("subs_title")));
+            subscriptionNumber.setKind(cursor.getString(cursor.getColumnIndex("subs_kind")));
+            subscriptionNumber.setStatus(cursor.getInt(cursor.getColumnIndex("subs_status")));
+            subscriptionNumber.setType(cursor.getString(cursor.getColumnIndex("subs_type")));
+            subscriptionNumber.setMaster(cursor.getString(cursor.getColumnIndex("subs_master")));
+            subscriptionNumbers.add(subscriptionNumber);
+        }
+        cursor.close();
+
+        return subscriptionNumbers;
+    }
+
+
+    public void updateAllSubs(SubscriptionNumber subscriptionNumber) {
+        String sql = "update AllSubs"
+                + " set subs_status=?"
+                + " where subs_id=? and subs_master=? ;";
+        SQLiteStatement sta = db.compileStatement(sql);
+        sta.bindLong(1, subscriptionNumber.getStatus());
+        sta.bindLong(2, subscriptionNumber.getId());
+        sta.bindString(3, subscriptionNumber.getMaster());
+        sta.executeInsert();
+    }
+
+    public void deleteFromAllSubs(SubscriptionNumber subscriptionNumber) {
+        String table = "AllSubs";
+        String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster()};
+        String whereClause = "subs_id=? and subs_master=? ";
+        db.delete(table, whereClause, whereArgs);
+    }
+
+
     /**
      * close database
      */

+ 2 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java

@@ -35,6 +35,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL(Constants.SQL_B2B_MSG);
         db.execSQL(Constants.OA_SIGNIN_TIME);//创建OA签到记录表
         db.execSQL(Constants.SubscriptionMessage);//
+//        db.execSQL(Constants.TABLE_ALL_SUBSCRIPTION);//未订阅列表
     }
 
     @Override
@@ -45,6 +46,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL("DROP TABLE IF EXISTS B2BMSG");
         db.execSQL("DROP TABLE IF EXISTS Signin");
         db.execSQL("DROP TABLE IF EXISTS SubscriptionMessage");
+        db.execSQL("DROP TABLE IF EXISTS AllSubs");
         onCreate(db);
     }
 

+ 100 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java

@@ -12,9 +12,12 @@ import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
+import android.widget.Toast;
 
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.lidroid.xutils.exception.DbException;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.AllSubscriptionAdapter;
 import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
@@ -24,6 +27,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
+import com.xzjmyk.pm.activity.util.SharedUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 
@@ -53,6 +57,7 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
     private List<String> keyStrings = new ArrayList<>();
     private final static int SUBSCRIBE_DETAIL_REQUEST = 33;
     private static int mClickedPos = -1;
+    String currentMaster;
 
     @Override
     protected int getLayout() {
@@ -62,11 +67,11 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
     @Override
     protected void initViews() {
         mRadioGroup = (RadioGroup) root.findViewById(R.id.subscription_all_rg);
-
+        currentMaster = CommonUtil.getSharedPreferences(getActivity(),"erp_master");
         mPullToRefreshListView = (PullToRefreshListView) root.findViewById(R.id.subscription_all_ptlv);
-        mAllSubscriptonKindMessages = new ArrayList<>();
         mSubscriptionNumbers = new ArrayList<>();
         mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mSubscriptionNumbers);
+        mAllSubscriptonKindMessages = new ArrayList<>();
 
         mEmptyLayout = new EmptyLayout(getActivity(), mPullToRefreshListView.getRefreshableView());
         mEmptyLayout.setShowLoadingButton(false);
@@ -116,7 +121,76 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
 
     @Override
     protected void initDatas() {
-        sendAllSubscriptionRequest();
+//        mAllSubscriptonKindMessages = (List<AllSubscriptonKindMessage>) MyApplication.getDataCacheFromMap("all_subs_cache");
+        Log.d("currentMaster: ",currentMaster);
+        String cacheKeys = SharedUtil.getString(currentMaster+"subs");
+        if (cacheKeys != null){
+            String[] cacheKeysArray = cacheKeys.split(",");
+            for (int i = 0; i < cacheKeysArray.length; i++) {
+                keyStrings.add(cacheKeysArray[i]);
+            }
+        }
+        try {
+            List<SubscriptionNumber> dbSubscriptionNumbers = MyApplication.mDbUtils.findAll(SubscriptionNumber.class);
+            if (dbSubscriptionNumbers == null){
+                sendAllSubscriptionRequest();
+                Toast.makeText(getActivity(),"网络加载",Toast.LENGTH_SHORT).show();
+            }else {
+                Toast.makeText(getActivity(),"本地加载",Toast.LENGTH_SHORT).show();
+                List<SubscriptionNumber> tempSubscriptionNumbers = new ArrayList<>();
+                AllSubscriptonKindMessage tempSubscriptonKindMessage = new AllSubscriptonKindMessage();
+                for (int i = 0; i < keyStrings.size(); i++) {
+                    String currentKey = keyStrings.get(i);
+                    for (int j = 0; j < dbSubscriptionNumbers.size(); j++) {
+                        if (currentMaster.equals(dbSubscriptionNumbers.get(j).getMaster())){
+                            SubscriptionNumber currentSubscriptionNumber = dbSubscriptionNumbers.get(j);
+                            if (currentSubscriptionNumber.getType().equals(currentKey)){
+                                tempSubscriptionNumbers.add(currentSubscriptionNumber);
+                            }
+                        }
+                    }
+                    tempSubscriptonKindMessage.setSubscriptionKind(currentKey);
+                    tempSubscriptonKindMessage.setSubscriptionNumbers(tempSubscriptionNumbers);
+
+                    mAllSubscriptonKindMessages.add(tempSubscriptonKindMessage);
+                }
+
+                if (keyStrings.size() == 0) {
+                    mRadioGroup.setVisibility(View.GONE);
+                } else {
+                    mRadioGroup.setVisibility(View.VISIBLE);
+                    for (int i = 0; i < keyStrings.size(); i++) {
+                        RadioButton radioButton = new RadioButton(getActivity());
+                        radioButton.setButtonDrawable(null);
+                        radioButton.setGravity(Gravity.CENTER);
+                        radioButton.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
+                        radioButton.setBackground(getResources().getDrawable(R.drawable.selector_subscribe_bg));
+                        radioButton.setText(keyStrings.get(i));
+                        radioButton.setTextColor(getResources().getColor(R.color.selector_subscribe_tv));
+                        radioButton.setPadding(0, 30, 0, 30);
+                        radioButton.setId(i);
+
+                        if (i == rbPos) {
+//                                radioButton.setTextColor(getResources().getColor(R.color.red));
+                            radioButton.setChecked(true);
+                        } else {
+//                                radioButton.setTextColor(getResources().getColor(R.color.black));
+                            radioButton.setChecked(false);
+                        }
+
+                        mRadioGroup.addView(radioButton, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+                    }
+
+                    mSubscriptionNumbers.clear();
+                    mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                    Log.d("allsubscription:", mSubscriptionNumbers.toString());
+                    mAllSubscriptionAdapter.notifyDataSetChanged();
+                }
+            }
+
+        } catch (DbException e) {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -140,6 +214,11 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
             switch (msg.what) {
                 case GET_ALL_SUBSCRIPTION:
                     progressDialog.dismiss();
+                    try {
+                        MyApplication.mDbUtils.deleteAll(SubscriptionNumber.class);
+                    } catch (DbException e) {
+                        e.printStackTrace();
+                    }
                     String resultJson = msg.getData().getString("result");
                     Log.d("allsubscriptionResult: ", resultJson);
                     try {
@@ -151,8 +230,10 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                             mEmptyLayout.showEmpty();
                             if (mPullToRefreshListView.isRefreshing()) {
                                 mPullToRefreshListView.onRefreshComplete();
-                                Crouton.makeText(getActivity(), "没有订阅数据", 0xff99cc00, 1500).show();
+                                Crouton.makeText(getActivity(), "没有订阅数据", 0xff99cc00, 1500).show();
                             }
+                            keyStrings.clear();
+                            mRadioGroup.removeAllViews();
                             return;
                         }
 
@@ -175,6 +256,8 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                                 subscriptionNumber.setTitle(subsObject.getString("title"));
                                 subscriptionNumber.setKind(subsObject.getString("kind"));
                                 subscriptionNumber.setStatus(subsObject.getInt("status"));
+                                subscriptionNumber.setType(key);
+                                subscriptionNumber.setMaster(currentMaster);
                                 if (subsObject.getInt("status") != 1) {
                                     subscriptionNumbers.add(subscriptionNumber);
                                 }
@@ -182,6 +265,11 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                             if (subscriptionNumbers.size() != 0) {
                                 keyStrings.add(key);
                                 subscriptonKindMessage.setSubscriptionNumbers(subscriptionNumbers);
+                                try {
+                                    MyApplication.mDbUtils.saveAll(subscriptionNumbers);
+                                } catch (DbException e) {
+                                    e.printStackTrace();
+                                }
                                 mAllSubscriptonKindMessages.add(subscriptonKindMessage);
                             }
 
@@ -194,7 +282,9 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                         mRadioGroup.setVisibility(View.GONE);
                     } else {
                         mRadioGroup.setVisibility(View.VISIBLE);
+                        StringBuilder keyStringBuilder = new StringBuilder();
                         for (int i = 0; i < keyStrings.size(); i++) {
+                            keyStringBuilder.append("," + keyStrings.get(i));
                             RadioButton radioButton = new RadioButton(getActivity());
                             radioButton.setButtonDrawable(null);
                             radioButton.setGravity(Gravity.CENTER);
@@ -215,11 +305,17 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
 
                             mRadioGroup.addView(radioButton, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                         }
+                        if (keyStringBuilder.length() > 2){
+                            keyStringBuilder.delete(0, 1);
+                        }
+                        SharedUtil.putString(currentMaster+"subs",keyStringBuilder.toString());
+
                     }
                     mSubscriptionNumbers.clear();
                     mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
                     Log.d("allsubscription:", mSubscriptionNumbers.toString());
                     mAllSubscriptionAdapter.notifyDataSetChanged();
+
                     if (mPullToRefreshListView.isRefreshing()) {
                         mPullToRefreshListView.onRefreshComplete();
                         Crouton.makeText(getActivity(), "刷新成功", 0xff99cc00, 1500).show();

+ 13 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -84,6 +84,19 @@ public class Constants {
     public static final String SubscriptionMessage = "CREATE TABLE SubscriptionMessage(id_,num_id_,instance_id_ ,createdate_,title_," +
             "son_title_,status_,EMP_ID_,RN_,SONTITLE_,SUMDATA_,name)";
 
+    //订阅号表
+    public static final String TABLE_ALL_SUBSCRIPTION = "CREATE TABLE AllSubs "
+            + "(id integer primary key autoincrement,"
+            + "subs_id integer,"
+            + "subs_title varchar(50),"
+            + "subs_kind varchar(50),"
+            + "subs_status integer,"
+            + "subs_type varchar(50),"
+            + "subs_master varchar(50)"+
+            ")";
+
+
+
     /**
      * 检测网络是否可用
      *

+ 38 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/SharedUtil.java

@@ -0,0 +1,38 @@
+package com.xzjmyk.pm.activity.util;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+/**
+ * 共享参数工具类
+ * Created by 饶猛 on 2016/2/15.
+ */
+public class SharedUtil {
+    private static SharedPreferences sharedPreferences;
+    private static SharedPreferences.Editor editor;
+
+    public static void init(Context context) {
+        sharedPreferences = context.getSharedPreferences("config", Context.MODE_PRIVATE);
+        editor = sharedPreferences.edit();
+    }
+
+    public static void putString(String key, String value) {
+        editor.putString(key, value);
+        editor.commit();
+
+    }
+
+    public static String getString(String key) {
+        return sharedPreferences.getString(key, null);
+    }
+
+    public static void putInt(String key, int value) {
+        editor.putInt(key, value);
+        editor.commit();
+    }
+
+    public static int getInt(String key) {
+        return sharedPreferences.getInt(key, -1);
+    }
+
+}

+ 10 - 1
WeiChat/src/main/res/layout/activity_subscribe_detail.xml

@@ -7,7 +7,8 @@
     <ScrollView
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_weight="1">
+        android:layout_weight="1"
+        android:visibility="gone">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -66,6 +67,14 @@
                 style="@style/app_line_gray_1dp"/>
         </LinearLayout>
     </ScrollView>
+
+    <WebView
+        android:id="@+id/subscribe_detail_wv"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1">
+
+    </WebView>
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="50dp"