Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all 5930 articles
Browse latest View live

Toolbar的使用以及自定义Toolbar的方法

$
0
0

android5.0以后出现了Toolbar,今天折腾了一下,在此做个记录方便以后查看,同时也给有需要的朋友们参考!!!!!很惭愧只做了一点微小的工作。

下面将完成两个方面的工作:

一、ToolBar的基本使用,如下是效果图:


二、自定义ToolBar,如下是效果图:

一、Toolbar的基本使用

1、新建工程后在activity_main.xml布局中添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.gta.yanwen.hellotoolbar.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorAccent"
            app:navigationIcon="@mipmap/left_arrow_icon"
            app:logo="@mipmap/ic_launcher"
            app:title="Title"
            app:subtitle="SubTitle"
            />
    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>
这是个主布局,根布局我们先不管,也可用RelativeLayout,主要看看AppBarLayout和Toolbar这两个view,AppBarLayout定义Toolbar所在的布局,设置了android:theme属性,这个属性是设置Toolbar的主题,主要是文字和背景等一些属性的集合,若不设置theme这个属性也可以通过?attr/color设置某个部位的单独属性。

AppBarLayout布局里面包含了ToolBar这个布局,来一个个分析她的属性:

android:background      设置toolbar的背景颜色

android:navigationIcon  设置toolbar最左边的按钮图标

app:logo                       设置Logo图标

app:title       设置Title标题

app:subtitle       设置副标题SubTitle

当然还有标题字体颜色、副标题字体颜色,读者可以自行去尝试。

注意:?attr/colorAccent属性值在style文件中有定义。

2、主布局设置完了以后再编写MainActivity.java文件,贴出代码如下慢慢分析:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

        toolbar.inflateMenu(R.menu.menu_main);
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                int id = item.getItemId();
                if (id == R.id.action_settings) {
                    Toast.makeText(MainActivity.this, "action_menu", Toast.LENGTH_SHORT).show();
                }
                return true;
            }
        });
    }
}
代码部分也很简单,获取到toolbar的id,设置了menu选项菜单,并设置了选项菜单每一项的点击监听事件。

到此编译、运行可出现图一效果。

二、自定义Toolbar

思路:编写CurToolbar类继承Toolbar,左边箭头和上面使用方法一样,邮编部分加了一个TextView和ImageButton。

1、在layout下新建tool_bar_layout.xml布局文件,如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/toolbar_search_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="50dp"
        android:padding="5dp"
        android:drawableLeft="@mipmap/search_icon"
        android:singleLine="true"
        android:duplicateParentState="true"
        android:clickable="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:background="@drawable/bg_toolbar_search_view"
        android:hint="输入需要搜索的商品名"/>

    <ImageButton
        android:id="@+id/toolbar_imgbtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:background="@android:color/transparent"/>
    
</RelativeLayout>
在RelativeLayout中放置了两个控件,分别是TextView和ImageButton,TextView是点击搜索控件,其中加载了bg_toolbar_search_view样式(后面将贴出)。布局的最右边放置一个带加号图片等ImageButton,这个布局是自定义Toolbar的主要部分。

2、其次新建CurToolbar继承Toolbar,代码如下:

public class CurToolBar extends Toolbar {

    private ImageView mImageView;
    private TextView mSearchEdit;
    private View view;

    public CurToolBar(Context context) {
        this(context, null);
    }

    public CurToolBar(Context context, AttributeSet attrs) {
        this(context, attrs, 0);

    }

    public CurToolBar(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        view = LayoutInflater.from(getContext()).inflate(R.layout.tool_bar_layout, null);

ViewById(R.id.toolbar_title);
        mImageView = (ImageView) view.findViewById(R.id.toolbar_imgbtn);
        mSearchEdit = (TextView) view.findViewById(R.id.toolbar_search_view);

        if (mImageView != null) {
            final TintTypedArray a = TintTypedArray.obtainStyledAttributes(getContext(), attrs,
                    R.styleable.CurToolBar, defStyleAttr, 0);
            mImageView.setImageDrawable(a.getDrawable(R.styleable.CurToolBar_rightButtonIcon));
            a.recycle();
        }
        if (mSearchEdit != null) {
            final TintTypedArray a = TintTypedArray.obtainStyledAttributes(getContext(), attrs,
                    R.styleable.CurToolBar, defStyleAttr, 0);
            boolean isVisible = a.getBoolean(R.styleable.CurToolBar_isShowSearchView, false);
            mSearchEdit.setVisibility(isVisible ? View.VISIBLE : View.GONE);
            a.recycle();
        }

        LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, Gravity.CENTER_HORIZONTAL);
        addView(view, lp);
    }
}
通过LayoutInflater获取tool_bar_layout布局,随后获取到里面的TextView和ImageButton,调用TintTypeArray.obtainStyledAttributes()获取到自定义的CurToolbar属性集合,然后获取到其中的rightButtonIcon和isShowSearchView这两个自定义的属性值,最后调用addView()将tool_bar_layout布局添加到Toolbar中。

3、在values下新建attrs文件,编写如下属性:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="CurToolBar" >
        <attr name="rightButtonIcon" format="reference"/>

        <attr name="isShowSearchView" format="boolean"/>
    </declare-styleable>
</resources>
rightButtonIcon属性,值类型是reference

isShowSearchView属性,值类型是boolean

4、再编写activity_main.xml主布局,如下:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.gta.yanwen.hellotoolbar.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <com.gta.yanwen.hellotoolbar.CurToolBar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:minHeight="?attr/actionBarSize"
            android:background="?attr/colorAccent"
            app:navigationIcon="@mipmap/left_arrow_icon"
            app:rightButtonIcon="@mipmap/plus_icon"
            app:isShowSearchView="true"></com.gta.yanwen.hellotoolbar.CurToolBar>

    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>
在AppBarLayout中加入CurToolBar自定义的布局,仔细看会发现加入了我们刚刚自定义的rightButtonIcon和isShowSearchIcon属性,当程序运行是CurToolBar类中会读到这两个属性的值并进行设置。

5、最后编写MainActivity.java,如下:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

        toolbar.findViewById(R.id.toolbar_imgbtn).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "ToolBar ImageButton", Toast.LENGTH_SHORT).show();
            }
        });

        toolbar.findViewById(R.id.toolbar_search_view).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                Toast.makeText(MainActivity.this, "Toolbar Search Edittext", Toast.LENGTH_SHORT).show();
                startActivity(new Intent(MainActivity.this, SearchCommodityActivity.class));
            }
        });

        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "onNavigationOnClick", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
这里主要是设置了CurToolbar中控件的点击监听事件,在SearchView这个TextView时启动了SearchCommodityActivity搜索界面,贴出如下:

SearchCommodityActivity.class

public class SearchCommodityActivity extends Activity {

    private ImageButton back_btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.search_commondity_layout);
        back_btn = (ImageButton) findViewById(R.id.back_btn);
        back_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SearchCommodityActivity.this.finish();
            }
        });
    }
}
search_commodity_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#EDECEC">

    <ImageButton
        android:id="@+id/back_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@mipmap/left_arrow_icon"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical"
        android:paddingLeft="15dp"
        android:layout_marginRight="20dp"
        android:background="@mipmap/bg_edit_ware"
        android:focusable="true"
        android:focusableInTouchMode="true"/>

</LinearLayout>
6、编译、运行程序可出现如上图二所示效果

源代码下载链接:

作者:yanwenmuc 发表于2016/9/14 18:21:56 原文链接
阅读:134 评论:0 查看评论

第三方登录之Google登录详细教程

$
0
0

明天是中秋节,robin祝大家中秋团圆。


说明一下几个问题:
1.全程所有设备科学上网
2.环境+设备AS2.1.2+一加手机1(CM13,Android6.0)
3.目前小米手机4C,MIUI开发版,一直点击按钮之后没有反应,正在解决。
4.我一直在更新。如果有什么问题,欢迎评论或者加QQ:402892393.


这两天在倒腾Google登录,现在基本上是整明白了,再次跟大家分享一下。(前方多图警告!!)
毫无疑问,这种第三方登录先去找官方API,科学上网的小伙伴点击起飞,我看了看感觉有些地方逻辑不是那么好,再加上纯英文的文档可能让想我一样的英文处于2岁小孩水平的小伙伴一脸懵逼。那我就带着大家一步一步按照套路来。
首先你需要科学上网(VPN或者lantern),然后进入上面我让大家点击的网址,点击下方蓝色按钮
这里写图片描述
紧接着会看到线面的page,
这里写图片描述
输入项目名称可包名(最好和创建的项目一直,要不我怕出幺蛾子),包名在AndroidManifest.xml中的package里面,好吧,我觉得我再说废话。
这里写图片描述
再点击下方蓝色大按钮,如图click,会看到如下的page,
这里写图片描述
紧接着,向下滚动,重点来了,需要一个SHA-1(安全的哈希算法),这个需要输入的,去哪里找呢?
这里写图片描述
在这里,看图,win+R–>cmd–>输入命令keytool -list -v -keystore mystore.keystore(mystore.keystore为你的debugkey的路径,这个路径一般在C:\Users\Administrator.android 这里面有一个debug.keystore,如果你的招不到请自行上网查找),然后就能得到你的SHA1的值,右键–>标记–>标记这个值–>回车(这时候已经复制了)
这里写图片描述
去到上面的图粘贴到输入框里面,然后点击蓝色大按钮。
这里写图片描述
之后杰来到了下面的page,图上已经标注,仔细看图,紧接着点击白色的大按钮准备回到文档中
这里写图片描述
这里写图片描述
接着往下滚,到最下面点击按钮
这里写图片描述
打开的这个页面时做一些准备工作的,比如导包之类的。如下图,第一个箭头说明2.3以上才能用(现在还TMD有适配2.3的设备?我们APP这么落后都4.0起步了),第二个箭头是要让你打开SDK manager去下载Google Play Service的,这个必须有。下载完成之后在你的SDK目录—extras—google—google_play_services就出来了。然后点击下面蓝色按钮(GET A CONFIGURATION FILE),目测要去配置信息之类的了,都是这套路。
这里写图片描述
接下来是这个page,同样输入项目名称可包名(最好和创建的项目一直,要不我怕出幺蛾子),点击蓝色大按钮。
这里写图片描述
再点击蓝色大按钮(不是close那个按钮!!!!),如下图。
这里写图片描述
到这里基本上是完成了90%了,你会问了,TMD你练代码都没写一个字母就说完成了这么多!!!客官,别急嘛~~

到后就是导包,我到的是最新的(2016年9月14日),最新的在科学上网走起,我不敢保证Google在我写完这篇博客之后会不会换地址,我还是把我的献上吧,compile ‘com.google.android.gms:play-services-auth:9.2.1’
这里有个可能菜鸟会遇到的坑,就是因为我们APP会继承很多Google的包,也就是Google全家桶,一般以com.google.android.gms:开头的都在全家桶中,后面的版本号一定一定一定定要一样!!否则编译不通过!!!
这里写图片描述
好吧,好吧,然后就是没有一点技术含量的coding了。。。直接贴代码。

先来UI的代码。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.administrator.googlelogindemo.MainActivity">

   <com.google.android.gms.common.SignInButton
       android:id = "@+id/sign_in_button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_alignParentTop="true"
       android:layout_centerHorizontal="true" />
   <TextView
       android:id="@+id/tv_1"
       android:layout_width="match_parent"
       android:layout_marginTop="30dp"
       android:layout_below="@+id/sign_in_button"
       android:background="#00ffff"
       android:textColor="#000"
       android:textSize="20sp"
       android:layout_height="wrap_content" />
</RelativeLayout>
再来activity的代码,都是API文档中的套路,大差不差。
package com.example.administrator.googlelogindemo;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;

import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.GoogleApiClient;

public class MainActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks,
        GoogleApiClient.OnConnectionFailedListener, View.OnClickListener {
    private GoogleApiClient mGoogleApiClient;
    private SignInButton sign_in_button;
    private static int RC_SIGN_IN=10001;
    private TextView tv_1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        GoogleSignInOptions gso = new GoogleSignInOptions
                .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .requestId()
                .build();

        mGoogleApiClient = new GoogleApiClient
                .Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .enableAutoManage(this, this)/* FragmentActivity *//* OnConnectionFailedListener */
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .build();

        tv_1 = (TextView) findViewById(R.id.tv_1);
        sign_in_button = (SignInButton) findViewById(R.id.sign_in_button);
        sign_in_button.setSize(SignInButton.SIZE_STANDARD);
        sign_in_button.setScopes(gso.getScopeArray());
        sign_in_button.setOnClickListener(this);
    }

    private void signIn() {
        Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }
    private void handleSignInResult(GoogleSignInResult result){
        Log.i("robin", "handleSignInResult:" + result.isSuccess());
        if(result.isSuccess()){
            Log.i("robin", "成功");
            GoogleSignInAccount acct = result.getSignInAccount();
            if(acct!=null){
                Log.i("robin", "用户名是:" + acct.getDisplayName());
                Log.i("robin", "用户email是:" + acct.getEmail());
                Log.i("robin", "用户头像是:" + acct.getPhotoUrl());
                Log.i("robin", "用户Id是:" + acct.getId());//之后就可以更新UI了
                Log.i("robin", "用户IdToken是:" + acct.getIdToken());
                tv_1.setText("用户名是:" + acct.getDisplayName()+"\n用户email是:" + acct.getEmail()+"\n用户头像是:" + acct.getPhotoUrl()+ "\n用户Id是:" + acct.getId()+"\n用户IdToken是:" + acct.getIdToken());
            }
        }else{
            tv_1.setText("登录失败");
            Log.i("robin", "没有成功"+result.getStatus());
        }
    }

    @Override
    public void onConnected(@Nullable Bundle bundle) {
        Log.i("robin","google登录-->onConnected,bundle=="+bundle);
    }

    @Override
    public void onConnectionSuspended(int i) {
        Log.i("robin","google登录-->onConnectionSuspended,i=="+i);
    }

    @Override
    public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
        Log.i("robin","google登录-->onConnectionFailed,connectionResult=="+connectionResult);
    }

    @Override
    protected void onStart() {
        super.onStart();
        mGoogleApiClient.connect();
    }

    @Override
    protected void onStop() {
        super.onStop();
        if (mGoogleApiClient.isConnected()) {
            mGoogleApiClient.disconnect();
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.i("robin", "requestCode==" + requestCode + ",resultCode==" + resultCode + ",data==" + data);
        if(requestCode==RC_SIGN_IN){
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            handleSignInResult(result);
        }
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.sign_in_button: {
                Log.i("robin","点击了登录按钮");
                signIn();
                break;
            }
        }
    }
}

好了代码贴完了,不得不说链式调用真爽,回车键都被我敲掉漆了,哈哈哈。
接下来,要测试Google的东西,手机要科学上网,然后直接run,然后点击登录按钮,看图(不小心暴露我们公司测试美女的账号了,没关系,你们骚扰也没用,这只是一个test账户。)
这里写图片描述
到这基本上就结束了,你以为就这么结束了?nonono。

有一个问题可能会有人问,TMD我打版测试怎么报了这个问题!!!
这里写图片描述

这个问题也困扰了我很长时间,这是因为我们刚刚的SHA1用的是debugkey并不是我们点击generate signed apk 之后的那个key,接下来我们创建一个新的key,图下图,填入基本信息之后是这样的,密码别忘了就行。目录也别忘了。
这里写图片描述
紧接着点击进入Google控制台,如果你之前加过项目应该就轻车熟路了,
这里写图片描述
上图如果你第一次创建的话应该就是你的项目,我之前创建过一个所以我需要点击他,选择这次需要测试的项目,然后到了这样的一个page
这里写图片描述
黄色的叹号有点感觉不太妙,对的,问题就出现在这,你需要点击进入,如下图,输入你刚刚建好的key的SHA1码。
这里写图片描述
然后你就兴高采烈地敲命令来获得新key的SHA1。如下图,发现,沃日!!!文件不存在什么鬼!!!这个地方需要把 你刚刚建好的key的类型(.kjs)去掉,再来,就成功了。同样的套路复制进去,点击完成。
这里写图片描述

打版,跑到手机上,依然可以获得一些信息。OK了,这样就都可以了。

作者:robin_java 发表于2016/9/14 18:23:25 原文链接
阅读:155 评论:0 查看评论

iOS项目拆分:数据本地持久化(3)

$
0
0

归档是将对象转化为数据字节, 以文件的形式存储在磁盘上,是数据本地持久化方式中的一种。
归档数据需要用到Model的时候,创建一个继承与NSObject的类遵循NSCoding协议。

#pragma mark - 单个对象存储
    NSArray *array = [NSArray arrayWithObjects:@"X教授",@"金刚狼",@"暴风女", nil];
    NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSString * filePath = [documentPath stringByAppendingPathComponent:@"saved"];
    // 归档
    BOOL result = [NSKeyedArchiver archiveRootObject:array toFile:filePath];
    NSLog(@"%d",result);
    // 反归档
    NSArray *array1 = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
    NSLog(@"%@",[array1 objectAtIndex:1]);
#pragma mark - 多个对象存储成一个文档
#pragma mark 第一步:将数据存到data里面
    NSMutableData *data = [NSMutableData new];
    // 创建一个工具对象
    NSKeyedArchiver *archivers = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
    [archivers encodeObject:@"X战警" forKey:@"name"];
    [archivers encodeObject:@"Movie" forKey:@"type"];
    //标识结束添加
    [archivers  finishEncoding];
#pragma mark 将Data存到文件中
    NSString *dataPath = [self documentFilePathWithInfo];
    [data writeToFile:dataPath atomically:YES];
    #pragma mark 还是需要借助工具
    //在工具初始化的时候可以绑定一个数据源
    NSKeyedUnarchiver   *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
    NSString * name = [unarchiver decodeObjectForKey:@"name"];
    NSString * type = [unarchiver decodeObjectForKey:@"type"];
    //标识结束操作
    [unarchiver finishDecoding];
作者:Cituses 发表于2016/9/14 18:54:23 原文链接
阅读:145 评论:0 查看评论

Android学习-新闻客户端养成记(三)

$
0
0


主界面的实现

前面已做好了核心布局文件,接下来要做的就是让客户端活起来,现在的任务就是实现一个侧滑菜单的功能, 

     

实现这个功能也并不难,使用V4包下的DrawerLayout 控件可以轻松解决这一问题 ,代码如下,

package eNews.activity;

import java.lang.ref.WeakReference;

import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.DrawerLayout.DrawerListener;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.tencent.connect.common.Constants;
import com.tencent.tauth.Tencent;
import eNews.app.R;
import eNews.common.HandlerWhat;
import eNews.fragments.MainFragment;
import eNews.fragments.MoreAboutFragment;
import eNews.fragments.PictureFragment;
import eNews.fragments.VideoFragment;
import eNews.fragments.WeatherFragment;
import eNews.thirdParty.TencentThirdParty;

/**
 * 
 * @author k 主界面
 */
public class MainWindows extends Activity implements OnClickListener {

	@SuppressWarnings("unused")
	private MainWindowsHandler mainWindowsHandler;
	private ImageView logo;
	private DrawerLayout drawerLayout;          //V4 包下的抽屉控件

	private LinearLayout menu_left;           //左侧菜单控件
	private LinearLayout menu_mainLayout;   <span style="white-space:pre">	</span>
	private LinearLayout menu_picLayout;      
	private LinearLayout menu_videoLayout;    

	private LinearLayout menu_weatherLayout;  
	private LinearLayout menu_moreLayout;     
	private LinearLayout menu_collectLayout;  

	public MainFragment mainFragment;          //项目里的碎片
	public PictureFragment pictureFragment;
	public VideoFragment videoFragment;
	public WeatherFragment weatherFragment;
	public MoreAboutFragment aboutFragment;

	private static ImageButton userImgBtn;
	private static TextView userName;
	private showCollectActivity showcollectActivityListener; //收藏

	private boolean isOpen;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.mainwindows);  //对应的布局文件
		initTencentInstance();                 //初始化腾讯第三方实例 
		init();                                
		initFragment(); //初始化碎片容器

	}

	private void initTencentInstance() {
		TencentThirdParty.getInstance(getApplicationContext())
				.getTencentInstance();

	}

	private void init() {

		mainWindowsHandler = new MainWindowsHandler(this);
		mainFragment = new MainFragment();
		videoFragment = new VideoFragment();
		weatherFragment = new WeatherFragment();
		pictureFragment = new PictureFragment();
		aboutFragment = new MoreAboutFragment();
		showcollectActivityListener = new showCollectActivity();

		drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);          //获取抽屉控件实例
		drawerLayout.setDrawerShadow(R.drawable.shadow, GravityCompat.START);   //设置抽屉打开时的阴影部分

		drawerLayout.setDrawerListener(new ActionBarDrawerToggleListener());   //为抽屉设置监听事件
		menu_left = (LinearLayout) findViewById(R.id.menuLayout);
		menu_left.setOnTouchListener(new OnTouchListener() {

			@SuppressLint("ClickableViewAccessibility")
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				return true;
			}
		});

		menu_mainLayout = (LinearLayout) findViewById(R.id.menuMain);
		menu_mainLayout.setOnClickListener(this);

		menu_picLayout = (LinearLayout) findViewById(R.id.menuPic);
		menu_picLayout.setOnClickListener(this);

		menu_videoLayout = (LinearLayout) findViewById(R.id.menuVideo);
		menu_videoLayout.setOnClickListener(this);

		menu_weatherLayout = (LinearLayout) findViewById(R.id.menuWeather);
		menu_weatherLayout.setOnClickListener(this);

		menu_moreLayout = (LinearLayout) findViewById(R.id.menuMore);
		menu_moreLayout.setOnClickListener(this);

		menu_collectLayout = (LinearLayout) findViewById(R.id.menuCollect);
		menu_collectLayout.setOnClickListener(showcollectActivityListener);

		userImgBtn = (ImageButton) findViewById(R.id.userImg);
		userImgBtn.setOnClickListener(new LoginBtnClick());

		userName = (TextView) findViewById(R.id.userName);
		userName.setOnClickListener(showcollectActivityListener);

	}

	private void initFragment() {
		FragmentManager fm = getFragmentManager();
		FragmentTransaction transaction = fm.beginTransaction();
		transaction.replace(R.id.frame_content, mainFragment);
		transaction.commit();

	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();

		ActionBar actionBar = getActionBar();
		actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
		actionBar.setCustomView(R.layout.actionbar_layout);
		actionBar.setDisplayShowCustomEnabled(true);

		logo = (ImageView) actionBar.getCustomView().findViewById(
				R.id.actionbar_logo);

		logo.setOnClickListener(new OnClickListener() {    //为actionbar上的logo图标设置监听,以便操作抽屉的打开与关闭

			@Override
			public void onClick(View v) {

				if (!isOpen) {

					drawerLayout.openDrawer(Gravity.LEFT);  //打开左侧抽屉
					isOpen = true;

				} else {
					drawerLayout.closeDrawer(Gravity.LEFT);  //关闭左侧抽屉
					isOpen = false;

					logo.setTranslationX(0);
				}

			}
		});

	}

	@Override
	public void onClick(View v) {    //监听左侧菜单的按钮
		// TODO Auto-generated method stub

		FragmentManager fm = getFragmentManager();
		FragmentTransaction transaction = fm.beginTransaction();
		switch (v.getId()) {

		case R.id.menuMain:

			drawerLayout.closeDrawer(menu_left);

			if (mainFragment == null)
				mainFragment = new MainFragment();
			transaction.replace(R.id.frame_content, mainFragment);  //替换当前的碎片

			System.out.println("menuVideo");
			break;

		case R.id.menuPic:

			drawerLayout.closeDrawer(menu_left);

			if (pictureFragment == null)
				pictureFragment = new PictureFragment();

			transaction.replace(R.id.frame_content, pictureFragment);

			System.out.println("menuPic");
			break;

		case R.id.menuVideo:

			drawerLayout.closeDrawer(menu_left);

			if (videoFragment == null)
				videoFragment = new VideoFragment();
			transaction.replace(R.id.frame_content, videoFragment);

			System.out.println("menuVideo");
			break;
		case R.id.menuWeather:

			drawerLayout.closeDrawer(menu_left);
			if (weatherFragment == null)
				weatherFragment = new WeatherFragment();
			transaction.replace(R.id.frame_content, weatherFragment);
			System.out.println("menuWeather");
			break;
		case R.id.menuMore:

			drawerLayout.closeDrawer(menu_left);
			if (aboutFragment == null)
				aboutFragment = new MoreAboutFragment();
			transaction.replace(R.id.frame_content, aboutFragment);
			System.out.println("menuMore");
			break;

		default:
			if (mainFragment == null)
				mainFragment = new MainFragment();
			transaction.replace(R.id.frame_content, mainFragment);
			break;
		}
		transaction.commit();

	}

	class showCollectActivity implements OnClickListener {  

		@Override
		public void onClick(View v) {               <span style="font-family: Arial, Helvetica, sans-serif;">//当点击收藏按钮时触发</span>


			if (TencentThirdParty.getInstance(getApplicationContext())
					.checkIsLogged()) {
				Intent intent = new Intent(MainWindows.this,
						CollectActivity.class);
				startActivity(intent);
			} else {
				Toast.makeText(getApplicationContext(), "请点击头像登录",
						Toast.LENGTH_SHORT).show();
			}

		}

	}

	class LoginBtnClick implements OnClickListener {

		@Override
		public void onClick(View v) {

			login();

		}

	}

	public void showMainFragment() {         //显示主碎片
		FragmentManager fm = getFragmentManager();
		FragmentTransaction transaction = fm.beginTransaction();
		if (mainFragment == null)
			mainFragment = new MainFragment();
		transaction.replace(R.id.frame_content, mainFragment);
		transaction.commit();

		getActionBar().show();

	}

	class ActionBarDrawerToggleListener implements DrawerListener {   //抽屉监听事件

		@Override
		public void onDrawerClosed(View drawerView) {  //抽屉关闭
			// TODO Auto-generated method stub

			System.out.println("onDrawerOpen ->" + isOpen + "");

			logo.setImageResource(R.drawable.menu_close);

		}

		@Override
		public void onDrawerOpened(View drawerView) {    //抽屉打开
			// TODO Auto-generated method stub

			System.out.println("onDrawerClosed ->" + isOpen + "");
			logo.setImageResource(R.drawable.menu_open);

		}

		@Override
		public void onDrawerSlide(View drawerView, float offset) {
			// TODO Auto-generated method stub

		}

		@Override
		public void onDrawerStateChanged(int newState) {
			// TODO Auto-generated method stub

		}

	}

	static class MainWindowsHandler extends Handler {
		WeakReference<MainWindows> mainReference;  //设成弱引用,避免引起内存泄漏

		public MainWindowsHandler(MainWindows mainWindows) {
			// TODO Auto-generated constructor stub
			mainReference = new WeakReference<MainWindows>(mainWindows);

		}

		@Override
		public void handleMessage(Message msg) {  //handler 暂时没有用上
			// TODO Auto-generated method stub
			super.handleMessage(msg);

			MainWindows mainWindows = mainReference.get();

			if (mainWindows != null) {
				System.out.println("mainReference.get()");

				switch (msg.what) {

				case HandlerWhat.mainNews:
					break;

				case HandlerWhat.pictureNews:
					break;

				case HandlerWhat.videoNews:
					break;

				case HandlerWhat.weatherNews:
					break;

				default:
					break;
				}

			}

		}
	}

	private void login() {  //腾讯第三方登录

		TencentThirdParty.getInstance(getApplicationContext()).userLogin(this);
		// updateUserInfo();

	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub

		if (requestCode == Constants.REQUEST_LOGIN
				|| requestCode == Constants.REQUEST_APPBAR) {    //腾讯官方文档说这行这行代码是为了照顾低端机,具体为什么,没有考究
			Tencent.onActivityResultData(
					requestCode,
					resultCode,
					data,
					TencentThirdParty.getInstance(getApplicationContext()).loginIUListener);
		}

		super.onActivityResult(requestCode, resultCode, data);
	}

	public static void setUserImgBtn(Bitmap bitmap) {   //设置用户头像

		if (bitmap == null)
			userImgBtn.setImageResource(R.drawable.people1);
		else
			userImgBtn.setImageBitmap(bitmap);

	}

	public static void setUserName(String name) {
		userName.setText(name);

	}

}
这样结合以前的布局文件,抽屉侧滑功能就可以实现了,写到这加上代码所提及到的碎片就可以看到及时的效果了,当然现在还不能看到新闻数据,因为还没有获取网络数据


源代码下载


作者:w1143408997 发表于2016/9/14 20:38:22 原文链接
阅读:113 评论:0 查看评论

【Android】仿今日头条简单的刷新效果

$
0
0

点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据。有四个选项卡。

这里写图片描述

前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里。做着做着遇到很多问题,都解决了。这个效果感觉还不错,整理一下。

MainActivity

package com.example.fragmentmytest;

import android.content.DialogInterface;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import com.example.dialog.CustomDialog;
import com.example.dialog.CustomDialogChangePwd;
import com.example.dialog.CustomDialogSignUp;
import com.example.myapplication.CustomApplication;
import com.example.utils.ToastUtils;

public class MainActivity extends FragmentActivity {

    public static final String serverAddress = "http://192.168.1.101";
    public static final String serverPort = "8080";

    OneFragment onefragment;
    TwoFragment twofragment;
    ThreeFragment threefragment;
    FourFragment fourfragment;
    Button btn1, btn2, btn3, btn4;
    OnClickListener clicklistener;
    TextView stu_msg;
    private CustomApplication app;

    /**
     * 用于对Fragment进行管理
     */
    FragmentManager fragementManager;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        app = (CustomApplication) getApplication(); // 获得CustomApplication对象
        // 必须继承FragmentActivity才能用getSupportFragmentManager();最好使用v4.app,已经没怎么有人使用app中的了
        fragementManager = getSupportFragmentManager();

        init();
        // 第一次启动时选中第0个tab
        setTabSelection(0);// 不能左右滑动的默认值

    }

    public void init() {
        stu_msg = (TextView) findViewById(R.id.stu_msg);

        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn3 = (Button) findViewById(R.id.btn3);
        btn4 = (Button) findViewById(R.id.btn4);

        clicklistener = new OnClickListener() {
            public void onClick(View arg0) {
                int id = arg0.getId();
                switch (id) {
                case R.id.btn1:
                    setTabSelection(0);
                    break;
                case R.id.btn2:
                    setTabSelection(1);
                    break;
                case R.id.btn3:
                    setTabSelection(2);
                    break;
                case R.id.btn4:
                    setTabSelection(3);
                    break;
                default:
                    break;
                }
            }
        };
        btn1.setOnClickListener(clicklistener);
        btn2.setOnClickListener(clicklistener);
        btn3.setOnClickListener(clicklistener);
        btn4.setOnClickListener(clicklistener);
    }

    private void setTabSelection(int index) {
        clearSelection();// 每次选中之前先清楚掉上次的选中状态

        // 开启一个Fragment事务
        FragmentTransaction transaction = fragementManager.beginTransaction();
        // 先隐藏掉所有的Fragment,以防止有多个Fragment显示在界面上的情况
        hideFragements(transaction);

        switch (index) {
        case 0:
            btn1.setBackgroundColor(Color.parseColor("#CFEFEF"));
            btn1.setTextColor(Color.parseColor("#FFFFFF"));
            app.setRoom(btn1.getText().toString());
            if (onefragment == null) {
                onefragment = new OneFragment();
                transaction.add(R.id.framelayout, onefragment);
            } else {
                transaction.show(onefragment);
                onefragment.mPullRefreshListView.setRefreshing(true);
            }

            break;
        case 1:
            btn2.setBackgroundColor(Color.parseColor("#CFEFEF"));
            btn2.setTextColor(Color.parseColor("#FFFFFF"));
            app.setRoom(btn2.getText().toString());
            if (twofragment == null) {
                twofragment = new TwoFragment();
                transaction.add(R.id.framelayout, twofragment);
            } else {
                transaction.show(twofragment);
                twofragment.mPullRefreshListView.setRefreshing(true);
            }
            break;
        case 2:
            btn3.setBackgroundColor(Color.parseColor("#CFEFEF"));
            btn3.setTextColor(Color.parseColor("#FFFFFF"));
            app.setRoom(btn3.getText().toString());
            if (threefragment == null) {
                threefragment = new ThreeFragment();
                transaction.add(R.id.framelayout, threefragment);
            } else {
                transaction.show(threefragment);
                threefragment.mPullRefreshListView.setRefreshing(true);
            }
            break;
        case 3:
            btn4.setBackgroundColor(Color.parseColor("#CFEFEF"));
            btn4.setTextColor(Color.parseColor("#FFFFFF"));
            app.setRoom(btn4.getText().toString());
            if (fourfragment == null) {
                fourfragment = new FourFragment();
                transaction.add(R.id.framelayout, fourfragment);
            } else {
                transaction.show(fourfragment);
                fourfragment.mPullRefreshListView.setRefreshing(true);
            }
            break;

        default:
            break;

        }
        transaction.commit();
    }

    /**
     * 清除掉所有的选中状态。
     */
    private void clearSelection() {
        btn1.setBackgroundColor(Color.parseColor("#EFEFEF"));
        btn1.setTextColor(Color.parseColor("#234567"));
        btn2.setBackgroundColor(Color.parseColor("#EFEFEF"));
        btn2.setTextColor(Color.parseColor("#234567"));
        btn3.setBackgroundColor(Color.parseColor("#EFEFEF"));
        btn3.setTextColor(Color.parseColor("#234567"));
        btn4.setBackgroundColor(Color.parseColor("#EFEFEF"));
        btn4.setTextColor(Color.parseColor("#234567"));
    }

    /**
     * 将所有的Fragment都置为隐藏状态。
     * 
     * @param transaction
     *            用于对Fragment执行操作的事务
     */
    private void hideFragements(FragmentTransaction transaction) {
        if (onefragment != null) {
            transaction.hide(onefragment);
        }
        if (twofragment != null) {
            transaction.hide(twofragment);
        }
        if (threefragment != null) {
            transaction.hide(threefragment);
        }
        if (fourfragment != null) {
            transaction.hide(fourfragment);
        }
    }
}

四个Fragment都差不多,这里是第一个:

package com.example.fragmentmytest;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

import com.example.adapter.MyAdapter;
import com.example.dao.ComputerRoomStatus;
import com.example.utils.ToastUtils;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.Mode;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

public class OneFragment extends Fragment {

    String room = "204";

    public PullToRefreshListView mPullRefreshListView;
    // private ArrayAdapter<String> mAdapter;
    private int mItemCount = 9;
    // private LinkedList<String> mListItems;

    private MyAdapter mAdapter;
    private List<ComputerRoomStatus> data;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceStatus) {
        View view = inflater.inflate(R.layout.twolayout, container, false);
        mPullRefreshListView = (PullToRefreshListView) view
                .findViewById(R.id.pull_refresh_list_2);
        mPullRefreshListView.setMode(Mode.PULL_FROM_START);

        return view;
    }


    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onViewCreated(view, savedInstanceState);
        initDatas();
        // mAdapter1 = new MyAdapter(getActivity(), data);

        mAdapter = new MyAdapter(getActivity(), data, room,mPullRefreshListView);
        mPullRefreshListView.setAdapter(mAdapter);
        mPullRefreshListView
                .setOnRefreshListener(new OnRefreshListener2<ListView>() {
                    @Override
                    public void onPullDownToRefresh(
                            PullToRefreshBase<ListView> refreshView) {
                        Log.e("TAG", "onPullDownToRefresh");
                        // 这里写下拉刷新的任务
                        new GetDataTask().execute();
                    }

                    @Override
                    public void onPullUpToRefresh(
                            PullToRefreshBase<ListView> refreshView) {
                        Log.e("TAG", "onPullUpToRefresh");
                        // 这里写上拉加载更多的任务
                        new GetDataTask().execute();
                    }
                });
        mPullRefreshListView.setRefreshing(true);
    }

    private void initDatas() {
        // 初始化数据和数据源
        data = new ArrayList<ComputerRoomStatus>();

        for (int i = 0; i < mItemCount; i++) {
            data.add(new ComputerRoomStatus(i, "1", "1", "3", "1", "1", "1"));
        }
    }

    protected void autoRefresh() {
        mPullRefreshListView.setRefreshing(true);
    }


    // 请求网络接口,这里是做的假数据
    private class GetDataTask extends AsyncTask<Void, Void, String> {

        @Override
        protected String doInBackground(Void... params) {
            try {
                // TODO 解析json
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
            return "" + (mItemCount++);
        }

        @Override
        protected void onPostExecute(String result) {
            // data.add(new
            // ComputerRoomStatus(1,result,result,result,result,result,result));
            data.add(new ComputerRoomStatus(Integer.parseInt(result), "", "",
                    "3", "1", "1", "1"));
            mAdapter.notifyDataSetChanged();
            mPullRefreshListView.onRefreshComplete();
        }
    }
}

MyAdapter

package com.example.adapter;

import java.util.List;

import android.content.Context;
import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;

import com.example.dao.ComputerRoomStatus;
import com.example.dialog.CustomDialogOrder;
import com.example.fragmentmytest.R;
import com.example.utils.ToastUtils;
import com.handmark.pulltorefresh.library.PullToRefreshListView;

public class MyAdapter extends BaseAdapter {

    private Context context;
    private List<ComputerRoomStatus> data;
    private LayoutInflater layoutInflater;
    private String room;
    private ViewHolder holder = null;
    private PullToRefreshListView mPullRefreshListView;

    public MyAdapter(Context context, List<ComputerRoomStatus> data, String room,PullToRefreshListView mPullRefreshListView) {
        this.context = context;
        this.data = data;
        this.room = room;
        this.mPullRefreshListView = mPullRefreshListView;
        layoutInflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return data.size();
    }



    @Override
    public Object getItem(int position) {
        return data.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {

            holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.lv_item, null);
            holder.seatId = (TextView) convertView.findViewById(R.id.seatId);
            holder.time1 = (Button) convertView.findViewById(R.id.time1);
            holder.time2 = (Button) convertView.findViewById(R.id.time2);
            holder.time3 = (Button) convertView.findViewById(R.id.time3);
            holder.time4 = (Button) convertView.findViewById(R.id.time4);
            holder.time5 = (Button) convertView.findViewById(R.id.time5);
            holder.time6 = (Button) convertView.findViewById(R.id.time6);
            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        // 获得集合中实体类对象
        final ComputerRoomStatus s = data.get(position);
        holder.seatId.setText(s.getId() + "");

        holder.time1.setOnClickListener(new lvButtonListener(position));
        holder.time2.setOnClickListener(new lvButtonListener(position));
        holder.time3.setOnClickListener(new lvButtonListener(position));
        holder.time4.setOnClickListener(new lvButtonListener(position));
        holder.time5.setOnClickListener(new lvButtonListener(position));
        holder.time6.setOnClickListener(new lvButtonListener(position));
        //略一部分不要紧的......

        return convertView;
    }

    class lvButtonListener implements View.OnClickListener {
        private int position;

        lvButtonListener(int pos) {
            position = pos;
        }

        @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.time1:
                showDialog(position, "1");
                break;
            case R.id.time2:
                showDialog(position, "2");
                break;
            case R.id.time3:
                showDialog(position, "3");
                break;
            case R.id.time4:
                showDialog(position, "4");
                break;
            case R.id.time5:
                showDialog(position, "5");
                break;
            case R.id.time6:
                showDialog(position, "6");
                break;
            default:
                break;
            }
        }
    }


    public void showDialog(final int id, final String witch) {
        final CustomDialogOrder.Builder builder = new CustomDialogOrder.Builder(
                context);
        builder.setTitle("预约上机");
        builder.setPositiveButton("预约", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                // 提交的时候提交application的room和position和witch
                ToastUtils.MyToast(context, room + ":" + id + ":" + witch);
                //TODO 拼接字符串 GET到指定的接口
                //TODO 并且刷新执行下拉刷新
                mPullRefreshListView.setRefreshing(true);
            }
        });

        builder.setNegativeButton("取消",
                new android.content.DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });

        builder.create().show();
    }

}

class ViewHolder {
    TextView seatId;
    Button time1, time2, time3, time4, time5, time6;

}
作者:bless2015 发表于2016/9/14 21:18:55 原文链接
阅读:104 评论:0 查看评论

解析网络json数据并展示到ListView上

$
0
0

      网易新闻看起来很简洁,左边是一张图片,右边是一些文字信息,这样的排版是十分常见的,给人的感觉就是简洁明了,下面通过解析网络json数据并展示到ListView上,来实现同样的效果,效果图如下:



1.数据来源于网上json数据的解析,网址为http://mrobot.pcauto.com.cn/v2/cms/channels/3?pageNo=1&pageSize=20&v=4.0.0(可能过段时间就失效了),如果想了解json解析或者获取json数据接口,参照:http://blog.csdn.net/ljw124213/article/details/52313758。json的格式如下(这里只解析title,image和pubDate三个字段):



2.先写出解析此json数据的实体类:

<span style="font-size:18px;">package com.example.listview;

import java.util.ArrayList;

public class CarBean {
	
	public ArrayList<Car>data;
	
	public static class Car{
		public String title;
		public String pubDate;
		public String image;
	}
}</span><span style="font-size:14px;">
</span>

3.解析json数据的工具类:

<span style="font-size:18px;">package com.example.listview;

import com.google.gson.Gson;

public class JsonUtils {
	public static CarBean parseJson(String jsonString){
		Gson gson = new Gson();
		CarBean cb = gson.fromJson(jsonString, CarBean.class);
		return cb;
	}
}</span>
注意:使用Gson解析的话,必须先下载Gson的jar包,放到工程的libs目录下,下载地址:http://download.csdn.net/detail/ljw124213/9612607

4.从网络上下载数据的工具类:

<span style="font-size:18px;">package com.example.listview;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class NetUtils {

	public static byte[] getNetData(String urlString){
		try {
			URL url = new URL(urlString);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			
			conn.setRequestMethod("GET");
			conn.setReadTimeout(5000);
			conn.setConnectTimeout(5000);
			
			byte[] result = null;
			if (conn.getResponseCode() == 200) {
				InputStream is = conn.getInputStream();
				ByteArrayOutputStream baos = new ByteArrayOutputStream();
				byte[] buffer = new byte[1024];
				int len = 0;
				while((len=is.read(buffer))!=-1){
					baos.write(buffer, 0, len);
				}
				result = baos.toByteArray();
			}
			return result;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}</span>

5.下载android-smart-image-view开源框架,把其src下的部分复制到自己工程的src下面,下载地址(带有使用详解):

http://download.csdn.net/detail/ljw124213/9630820

6.准备工作完成之后,下面开始实现具体功能,创建一个异步任务类,来下载网络数据:

<span style="font-size:18px;">package com.example.listview;

import java.util.ArrayList;

import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;

import com.example.day09_listview.CarBean.Car;

public class DownAsynctask extends AsyncTask<String, Void, byte[]>{

	ArrayList<Car>data;
	MyAdapter adapter;
	Context context;
	
	public DownAsynctask(ArrayList<Car> data, MyAdapter adapter, Context context) {
		super();
		this.data = data;
		this.adapter = adapter;
		this.context = context;
	}

	@Override
	protected byte[] doInBackground(String... params) {
		return NetUtils.getNetData(params[0]);
	}

	@Override
	protected void onPostExecute(byte[] result) {
		super.onPostExecute(result);
		if (result != null) {
			String jsonString = new String(result);
			CarBean cb = JsonUtils.parseJson(jsonString);
			data.addAll(cb.data);
			adapter.notifyDataSetChanged();
		}else {
			Toast.makeText(context, "网络异常", Toast.LENGTH_SHORT).show();
		}
	}
}</span>


7.创建一个数据适配器,用来加载数据:

<span style="font-size:18px;">package com.example.listview;

import java.util.ArrayList;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.day09_listview.CarBean.Car;
import com.loopj.android.image.SmartImageView;

public class MyAdapter extends BaseAdapter{

	ArrayList<Car> data;
	Context context;
	
	public MyAdapter(ArrayList<Car> data, Context context) {
		super();
		this.data = data;
		this.context = context;
	}

	@Override
	public int getCount() {
		return data.size();
	}

	@Override
	public Object getItem(int arg0) {
		return data.get(arg0);
	}

	@Override
	public long getItemId(int arg0) {
		return arg0;
	}

	@Override
	public View getView(int arg0, View arg1, ViewGroup arg2) {
		ViewHold holder;
		if(arg1 == null){
			arg1 = View.inflate(context, R.layout.item, null);
			
			holder = new ViewHold();
			holder.tv_title = (TextView) arg1.findViewById(R.id.tv_title);
			holder.tv_date = (TextView) arg1.findViewById(R.id.tv_date);
			holder.iv = (SmartImageView) arg1.findViewById(R.id.iv);
			
			arg1.setTag(holder);
			
		}else {
			holder = (ViewHold) arg1.getTag();
		}
		Car car = data.get(arg0);
		holder.tv_title.setText(car.title);
		holder.tv_date.setText(car.pubDate);
		
		//使用SmartImageView的setImageUrl方法下载图片
		holder.iv.setImageUrl(car.image);
		
		return arg1;
	}

     class ViewHold{
		SmartImageView iv;
		TextView tv_title;
		TextView tv_date;
	}
}</span>



8.在MainActivity中进行数据的汇总:

<span style="font-size:18px;">package com.example.listview;

import java.util.ArrayList;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ListView;

import com.example.day09_listview.CarBean.Car;

public class MainActivity extends Activity {

	private ListView lv;
	private ArrayList<Car> data;
	private MyAdapter adapter;
	private boolean flag = false;
	private int pageNo = 1;
	private ExecutorService es;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		lv = (ListView) findViewById(R.id.lv);
		
		data = new ArrayList<Car>();
		
		adapter = new MyAdapter(data,this);
		
		//给listview设置一个底部view(必须在设置数据之前)
		View footView = View.inflate(this, R.layout.foot, null);
		lv.addFooterView(footView);
		
		lv.setAdapter(adapter);
		
		//使用线程池来实现异步任务的多线程下载
		es = Executors.newFixedThreadPool(10);
		new DownAsynctask(data,adapter,this).executeOnExecutor(es, "http://mrobot.pcauto.com.cn/v2/cms/channels/3?pageNo="+pageNo+"&pageSize=20&v=4.0.0");
		
		/*
		 * 对listview设置滚动监听事件,实现分页加载数据
		 */
		lv.setOnScrollListener(new OnScrollListener() {
			
			@Override
			public void onScrollStateChanged(AbsListView view, int scrollState) {
				//如果停止了滑动且滑动到了结尾,则更新数据
				if (scrollState == OnScrollListener.SCROLL_STATE_IDLE && flag == true) {
					pageNo += 1;
					new DownAsynctask(data,adapter,MainActivity.this).executeOnExecutor(es, "http://mrobot.pcauto.com.cn/v2/cms/channels/3?pageNo="+pageNo+"&pageSize=20&v=4.0.0");
				}
			}
			
			@Override
			public void onScroll(AbsListView view, int firstVisibleItem,
					int visibleItemCount, int totalItemCount) {
				//判断是否滑动到了结尾
				if (firstVisibleItem + visibleItemCount == totalItemCount) {
					flag = true;
				}else {
					flag = false;
				}
			}
		});
	}
}</span>


9.ListView对应的布局文件activity_main.xml:

<span style="font-size:18px;"><span style="font-size:18px;"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout></span></span>


10.ListView对应的item的布局文件item.xml:

<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    
    <!-- 注意:这里的ImageView要改为包名+SmartImageView -->
    <com.loopj.android.image.SmartImageView
        android:id="@+id/iv"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/ic_launcher"/>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginLeft="15dp"
        android:orientation="vertical">
        <TextView 
            android:id="@+id/tv_title"
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:layout_marginTop="10dp"
            android:textSize="20sp"/>
        <TextView 
            android:id="@+id/tv_date"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:textSize="16sp"
            android:textColor="#aaa"/>
    </LinearLayout>

</LinearLayout></span>



11.ListView尾布局对应的布局文件footer.xml:

<span style="font-size:18px;"><span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    
    <!-- 注意:这里的ImageView要改为包名+SmartImageView -->
    <com.loopj.android.image.SmartImageView
        android:id="@+id/iv"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@drawable/ic_launcher"/>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:layout_marginLeft="15dp"
        android:orientation="vertical">
        <TextView 
            android:id="@+id/tv_title"
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:layout_marginTop="10dp"
            android:textSize="20sp"/>
        <TextView 
            android:id="@+id/tv_date"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:textSize="16sp"
            android:textColor="#aaa"/>
    </LinearLayout>

</LinearLayout></span></span>

提示:此数据接口可能很快就不能用来,如果需要测试的话,可以把原数据放到tomcat服务器中进行测试,下面是完整数据:

{
    "data": [
        {
            "articleType": "n",
            "count": 29,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/8/14733163729178590_600.jpg",
            "id": "8562073",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/08/g_8562073_1473339813478_240x160.jpg",
            "mtime": 1473351348000,
            "pubDate": "2016-09-09",
            "title": "新福特翼虎购车手册 家用中配足够实用",
            "ups": 26,
            "url": "http://www.pcauto.com.cn/teach/856/8562073.html"
        },
        {
            "articleType": "n",
            "count": 37,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1608/31/8655654_toutu_thumb.jpg",
            "id": "8655654",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8655654_1472800030976_240x160.jpg",
            "mtime": 1473351337000,
            "pubDate": "2016-09-09",
            "title": "年轻人第一台车 10万左右精品车型推荐",
            "ups": 130,
            "url": "http://www.pcauto.com.cn/teach/865/8655654.html"
        },
        {
            "articleType": "n",
            "count": 35,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/06/8719572_toutu_thumb.jpg",
            "id": "8719572",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/06/g_8719572_1473152785181_240x160.jpg",
            "mtime": 1473264982000,
            "pubDate": "2016-09-08",
            "title": "豪门不“壕” 4款入门豪华SUV仅售23万起",
            "ups": 143,
            "url": "http://www.pcauto.com.cn/teach/871/8719572.html"
        },
        {
            "articleType": "n",
            "count": 40,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/1/14727375445822660_600.jpg",
            "id": "8705572",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/07/g_8705572_1473242245557_240x160.jpg",
            "mtime": 1473264969000,
            "pubDate": "2016-09-08",
            "title": "明锐对比英朗 当欧洲绅士遇上美国大汉",
            "ups": 52,
            "url": "http://www.pcauto.com.cn/teach/870/8705572.html"
        },
        {
            "articleType": "n",
            "count": 68,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/6/14731526553913750_600.jpg",
            "id": "8719262",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/06/g_8719262_1473151845818_240x160.jpg",
            "mtime": 1473153591000,
            "pubDate": "2016-09-06",
            "title": "新晋英伦长轴距座驾 捷豹XFL实拍解析",
            "ups": 299,
            "url": "http://www.pcauto.com.cn/teach/871/8719262.html"
        },
        {
            "articleType": "n",
            "count": 100,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/07/8695292_999_thumb.jpg",
            "id": "8695292",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/01/g_8695292_1472695974218_240x160.jpg",
            "mtime": 1473137438000,
            "pubDate": "2016-09-06",
            "title": "15万元搞定 四款独立后悬挂合资SUV推荐",
            "ups": 117,
            "url": "http://www.pcauto.com.cn/teach/869/8695292.html"
        },
        {
            "articleType": "n",
            "count": 84,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/06/8718677_xin1000_thumb.jpg",
            "id": "8718677",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/05/g_8718677_1473061488223_240x160.jpg",
            "mtime": 1473092132000,
            "pubDate": "2016-09-06",
            "title": "8万元选靠谱SUV 4款新推自主车型推荐",
            "ups": 91,
            "url": "http://www.pcauto.com.cn/teach/871/8718677.html"
        },
        {
            "articleType": "n",
            "count": 96,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20168/29/14724733055558460_600.jpg",
            "id": "8683971",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8683971_1472803720871_240x160.jpg",
            "mtime": 1473005791000,
            "pubDate": "2016-09-05",
            "title": "凯美瑞对比雅阁 谁才是日系中级车霸主",
            "ups": 65,
            "url": "http://www.pcauto.com.cn/teach/868/8683971.html"
        },
        {
            "articleType": "n",
            "count": 136,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/04/8716791_00_thumb.jpg",
            "id": "8716791",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/04/g_8716791_1473002216143_240x160.jpg",
            "mtime": 1473005746000,
            "pubDate": "2016-09-05",
            "title": "精华都在这里 成都车展最值得关注的SUV",
            "ups": 390,
            "url": "http://www.pcauto.com.cn/teach/871/8716791.html"
        },
        {
            "articleType": "n",
            "count": 26,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/4/14729794978954170_600.jpg",
            "id": "8716391",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/04/g_8716391_1472979896686_240x160.jpg",
            "mtime": 1472980188000,
            "pubDate": "2016-09-04",
            "title": "2016成都车展:静态评测奔驰新一代威霆",
            "ups": 312,
            "url": "http://www.pcauto.com.cn/teach/871/8716391.html"
        },
        {
            "articleType": "n",
            "count": 32,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/01/8700555_8207206_03_thumb.jpg",
            "id": "8700555",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/01/g_8700555_1472716638381_240x160.jpg",
            "mtime": 1472919329000,
            "pubDate": "2016-09-04",
            "title": "入门性价比爆炸 新款致炫购车手册",
            "ups": 91,
            "url": "http://www.pcauto.com.cn/teach/870/8700555.html"
        },
        {
            "articleType": "n",
            "count": 70,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14728310541595730_600.jpg",
            "id": "8712133",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8712133_1472831164431_240x160.jpg",
            "mtime": 1472832200000,
            "pubDate": "2016-09-03",
            "title": "2016成都车展:静态评测北京现代胜达",
            "ups": 468,
            "url": "http://www.pcauto.com.cn/teach/871/8712133.html"
        },
        {
            "articleType": "n",
            "count": 41,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/02/8710078_1000_thumb.jpg",
            "id": "8710078",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8710078_1472810381352_240x160.jpg",
            "mtime": 1472817162000,
            "pubDate": "2016-09-02",
            "title": "2016成都车展:静态评测新款玛莎拉蒂总裁",
            "ups": 299,
            "url": "http://www.pcauto.com.cn/teach/871/8710078.html"
        },
        {
            "articleType": "n",
            "count": 62,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14728116986128820_600.jpg",
            "id": "8711094",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8711094_1472812405190_240x160.jpg",
            "mtime": 1472812618000,
            "pubDate": "2016-09-02",
            "title": "2016成都车展:静态评测大众新桑塔纳",
            "ups": 1053,
            "url": "http://www.pcauto.com.cn/teach/871/8711094.html"
        },
        {
            "articleType": "n",
            "count": 28,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14728073809221840_600.jpg",
            "id": "8710334",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8710334_1472807999865_240x160.jpg",
            "mtime": 1472808197000,
            "pubDate": "2016-09-02",
            "title": "2016成都车展:静态体验北京现代悦纳",
            "ups": 247,
            "url": "http://www.pcauto.com.cn/teach/871/8710334.html"
        },
        {
            "articleType": "n",
            "count": 31,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14728054816668520_600.jpg",
            "id": "8710116",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8710116_1472805803455_240x160.jpg",
            "mtime": 1472806069000,
            "pubDate": "2016-09-02",
            "title": "2016成都车展:静态评测东南DX3",
            "ups": 247,
            "url": "http://www.pcauto.com.cn/teach/871/8710116.html"
        },
        {
            "articleType": "n",
            "count": 60,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14728006933643890_600.jpg",
            "id": "8709146",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8709146_1472801055169_240x160.jpg",
            "mtime": 1472801551000,
            "pubDate": "2016-09-02",
            "title": "2016成都车展:静态评测宝马X1混动版",
            "ups": 806,
            "url": "http://www.pcauto.com.cn/teach/870/8709146.html"
        },
        {
            "articleType": "n",
            "count": 87,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14727918621883140_600.jpg",
            "id": "8708181",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8708181_1472793809972_240x160.jpg",
            "mtime": 1472794520000,
            "pubDate": "2016-09-02",
            "title": "2016成都车展:静态评测东风本田竞瑞",
            "ups": 533,
            "url": "http://www.pcauto.com.cn/teach/870/8708181.html"
        },
        {
            "articleType": "n",
            "count": 34,
            "downs": 0,
            "firstImg": "http://img0.pcauto.com.cn/pcauto/1609/02/8704693_toutu_thumb.jpg",
            "id": "8704693",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8704693_1472787714022_240x160.jpg",
            "mtime": 1472793542000,
            "pubDate": "2016-09-02",
            "title": "冲击市场有力竞争者 新科沃兹购车手册",
            "ups": 117,
            "url": "http://www.pcauto.com.cn/teach/870/8704693.html"
        },
        {
            "articleType": "n",
            "count": 111,
            "downs": 0,
            "firstImg": "http://img.pcauto.com.cn/images/pcautogallery/modle/article/20169/2/14727803654960920_600.jpg",
            "id": "8706132",
            "image": "http://img0.pcauto.com.cn/pcauto/1609/02/g_8706132_1472781925547_240x160.jpg",
            "mtime": 1472781940000,
            "pubDate": "2016-09-02",
            "title": "7座对标汉兰达 斯柯达KODIAQ实拍解析",
            "ups": 104,
            "url": "http://www.pcauto.com.cn/teach/870/8706132.html"
        }
    ],
    "pageNo": 1,
    "pageSize": 20,
    "total": 200
}


作者:ljw124213 发表于2016/9/14 21:46:58 原文链接
阅读:118 评论:0 查看评论

Android中的AsyncTask和接口回调使用详解

$
0
0

Android中的AsyncTask和接口回调使用详解

我的主页
Demo下载地址


一、AsyncTask简单介绍

  • 官方文档中队AsyncTask的解释是:AsyncTask更加适用于UI线程。这个类允许执行后台操作并在UI界面上发布结果,而不必处理多线程。AsyncTask是围绕Thread和Handler设计的一个辅助类,它不构成一个通用的线程框架。Asynctasks应该用于短作业(最多几秒钟)。

  • 说的简单一点,AsyncTask其实就是Android提供的一个轻量级异步类。使用的时候可以自己自定义一个类去继承AsyncTask,就能在自定义类中实现异步操作,并且该类的实现方法中提供了接口来反馈当前异步任务执行的程度,最后还可以将执行的结果传递给UI线程。

二、接口回调简单介绍

  • 接口回调,字面意思可以理解为定义一个接口,等以后出现了某一种状况的时候,然后去调用接口的方法做一些事。 多个比方说,我是搞开发的,目前手里没有项目,我就打电话奥巴马问他手里有没有项目给我做,要是他手里有项目就直接给我了,要是没有他会说后面可能有,你留下电话,有了我就打电话告诉你,这就是一个简单的回调理解,奥巴马后面打电话给我就相当于一个回调过程,而我打电话给奥巴马就相当于注册接口。
  • 在Demo中,接口回调使用在异步任务执行完毕之后。因为你备份完短信可能要谈个吐司,播个音乐什么的,那就必须让MainActivity知道你已经执行完任务了,但是MainActivity怎么知道你已经执行完了,这里就需要接口回调了,让MainActivity实现接口,并且先定义好当完成任务需要做什么事情。这样当任务执行完就会直接调用MainActivity中定义好的方法更新UI等操作。短信备份操作回调结构图如下:

回调操作显示UI

三、AsyncTask和接口回调的使用案例

  • 先来看一下使用AsyncTask显示备份短信和还原短信的进度条。实现的原理很简单,写一个短信的工具类,在类中提供从数据库读取短信到集合和还原保存的短信到集合的方。我们自定义两个类继承AsyncTask,一个类实现将集合中的短信保存到本地的逻辑,另一个类实现将将集合中的短信插入到数据库中的逻辑。并且当异步任务执行完毕之后,我们使用接口回调,让主线程去处理短信备份和还原完成的工作,这里是谈吐司,当然你也可以播放音乐什么的。

AsyncTask更新进度条效果图

四、AsyncTask使用详解

  • 官方文档中称:异步任务将耗时操作放在后台线程上计算运行,然后将其结果在用户界面线程上发布。一个异步任务是由参数,过程和结果这3个泛型类型定义。它还包括四个步骤:oPostExecute,doInBackground,onProgressUpdate和onPostexecute。使用AsyncTask必须定义一个类继承AsyncTask,然后子类中必须实现doInBackground方法,经常也会实现oPostExecute方法。
  • 自定义类继承AsyncTask代码如下:

    private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
         protected Long doInBackground(URL... urls) {
             int count = urls.length;
             long totalSize = 0;
             for (int i = 0; i < count; i++) {
                 totalSize += Downloader.downloadFile(urls[i]);
                 publishProgress((int) ((i / (float) count) * 100));
                 // Escape early if cancel() is called
                 if (isCancelled()) break;
             }
             return totalSize;
         }
    
         protected void onProgressUpdate(Integer... progress) {
             setProgressPercent(progress[0]);
         }
    
         protected void onPostExecute(Long result) {
             showDialog("Downloaded " + result + " bytes");
        }
     }
    
  • 开启异步任务代码如下:

    new DownloadFilesTask().execute(url1, url2, url3);
    

1. 三个泛型类型

  • Params:参数。启动任务执行需要输入的参数,比如HTTP请求的URL
  • Progress:过程。后台任务执行的百分比
  • Result:结果。后台执行任务最终返回的结果,比如String

  • 这三个参数对四个步骤的方法的参数类型和返回值分别进行约束,如果没有约束的话,参数类型都为Void

    private class MyTask extends AsyncTask<Void, Void, Void> { ... }
    

2. 四个步骤

  • onPreExecute()

    • 调用时机:第一个执行,并且在异步任务开始之前调用
    • 执行线程:主线程
    • 方法参数:无
    • 方法返回值:无
    • 方法的作用:用于提醒用户,当前正在请求数据,一般用来弹出进度对话框

      @Override
      protected void onPreExecute() {
          super.onPreExecute();
          // 运行在前台,初始化UI操作
          mDialog = new ProgressDialog(context);
          mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
          mDialog.show();
      }
      
  • doInBackground()

    • 调用时机:在onPreExecute方法执行完毕之后,这个方法一定会执行
    • 执行线程:子线程
    • 方法参数

      • 由类上面的第一个泛型Params来限定
      • 从execute方法里面传递进来
    • 方法返回值

      • 由类上面的第三个泛型Result来限定
      • 将被当做onPostExecute()方法的参数
    • 方法的作用:在后台线程当中执行耗时操作,比如联网请求数据。在执行过程中可以调用publicProgress()来更新任务的进度

      @Override
      protected Boolean doInBackground(Void... params) {
      
          List<SmsBean> list = SmsUtil.getAllSms(context);
      
          try {
              // 序列化器
              XmlSerializer xs = Xml.newSerializer();
              File file = new File(context.getFilesDir(), "sms.xml");
              // 设置输出路径
              xs.setOutput(new FileOutputStream(file), "utf-8");
      
              xs.startDocument("utf-8", true);
      
              xs.startTag(null, "smss");
      
              for (int i = 0; i < list.size(); i++) {
      
                  SmsBean bean = list.get(i);
      
                  xs.startTag(null, "sms");
      
                  xs.startTag(null, "address");
                  xs.text(bean.address);
                  xs.endTag(null, "address");
      
                  xs.startTag(null, "date");
                  xs.text(bean.date + "");
                  xs.endTag(null, "date");
      
                  xs.startTag(null, "type");
                  xs.text(bean.type + "");
                  xs.endTag(null, "type");
      
                  xs.startTag(null, "body");
                  xs.text(bean.body);
                  xs.endTag(null, "body");
      
                  xs.endTag(null, "sms");
      
                  SystemClock.sleep(100);
      
                  publishProgress(i + 1, list.size());
              }
      
              xs.endTag(null, "smss");
              xs.endDocument();
      
              return true;
          } catch (Exception e) {
              e.printStackTrace();
              return false;
          }
      }
      
  • onProgressUpdate()

    • 调用时机:在publishProgress()方法执行之后调用
    • 执行线程:主线程
    • 方法参数

      • 由类上面的第二个泛型来限定。
      • 参数是从publishProgress 传递进来
    • 方法返回值:无
    • 方法的作用:更新进度条

      @Override
      protected void onProgressUpdate(Integer... values) {
          super.onProgressUpdate(values);
          // 更新UI
          mDialog.setMax(values[1]);
          mDialog.setProgress(values[0]);
      }   
      
  • onPostExecute()

    • 调用时机:在doInBackground 执行完毕之后调用
    • 执行线程:主线程
    • 方法参数

      • 由类上面的第三个泛型来限定。
      • doInBackground的返回值就是这个方法的参数
    • 方法返回值:无

    • 方法的作用:相当于Handler的handleMessage()方法,在这里面可以对doInBackground()方法得到的结果进行处理,更新UI

      @Override
      protected void onPostExecute(Boolean result) {
          super.onPostExecute(result);
          if (result) {
              listener.onSuccess();
          } else {
              listener.onFailure();
          }
          mDialog.dismiss();
      }
      

3. 需要遵守的准则

  • 任务必须在主线程中执行
  • 任务对象必须在主线程中构建
  • execute方法必须在主线程中执行
  • 四个步骤中的方法不能直接调用,publicProgress()方法可以在类中暴露一个方法出去,让外边调用
  • 任务只能执行一次

    • 1.6开始的时候,可以并发执行多个任务,但是3.0之后,只能允许单个任务执行。如果真的想要多任务并发执行,那么可以运行在自己的线程池里面

      mTask.executeOnExecutor(exec, params)
      

五、接口回调简单使用

使用接口回调,一般有以下四个步骤,通过这四个步骤就能形成一个简单的回调。在Android中很多地方都用到了接口回调,比如控件的点击事件,GitHub上的许多开源框架也都用了接口回调,开发过程了也频频涉及到接口回调,所以这是一个很重要的知识点。

  1. 定义接口,可以是内部接口,也可以是自定义接口

    /**
     * 定义回调接口
     */
    public interface OnTaskListener{
    
        /**
         * 成功之后调用这个方法
         */
        void onSuccess();
    
        /**
         * 失败之后调用这个方法
         */
        void onFailed();
    
    
    }
    
  2. 接收接口实现类对象

    public BackupTask(Context context, OnTaskListener listener) {
            mContext = context;
            mListener = listener;
    }
    
  3. 通过接口实现类对象,访问对应的方法

    if(result){
        mListener.onSuccess();
        // == ToastUtil.showShort(mContext,"备份成功");
    }else{
        mListener.onFailed();
        // == ToastUtil.showShort(mContext,"备份失败");
    }
    
  4. 在实现中编写调用方法执行操作的代码

    // 直接调用工具类的回调方法来弹出吐司
    new SmsUtil().backUpSms(this, new SmsUtil.OnTaskListener() {
        @Override
        public void onSuccess() {
            ToastUtil.showShort(MainActivity.this,"备份成功");
        }
    
        @Override
        public void onFailure() {
            ToastUtil.showShort(MainActivity.this,"备份失败");
        }
    });
    

我的主页

Demo下载地址

以上纯属于个人平时工作和学习的一些总结分享,如果有什么错误欢迎随时指出,大家可以讨论一起进步。

作者:u013443865 发表于2016/9/14 23:07:28 原文链接
阅读:62 评论:0 查看评论

Gson解析和Volley框架并用

$
0
0
package com.example.liuyazhou.mythirdapplication;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.Volley;

import weather.Data;
import weather.Life;
import weather.Info;
import weather.Realtime;
import weather.Result;
import weather.ALLWeather;

public class MainActivity extends Activity {

    private Button button;

    private String urlJsonWeather = "http://op.juhe.cn/onebox/weather/query?cityname=%E5%8C%97%E4%BA%AC&dtype=json&key=******1b7942cbdcff19a08001";
    private static String TAG = MainActivity.class.getSimpleName();/////key需要自己申请
    private String jsonResponse;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                funWeatherGsonRequest();
            }
        });
    }
    ////Volley 三  http://blog.csdn.net/guolin_blog/article/details/17612763
    public void funWeatherGsonRequest() {
        RequestQueue mQueue = Volley.newRequestQueue(MainActivity.this);
        GsonRequest<ALLWeather> gsonRequest = new GsonRequest<ALLWeather>(
                urlJsonWeather, ALLWeather.class,
                new Response.Listener<ALLWeather>() {
                    @Override
                    public void onResponse(ALLWeather allWeather) {
                        Log.i(TAG, allWeather.toString());
                        Log.i(TAG, "reason is: " + allWeather.getReason());

                        Result result = allWeather.getResult();
                        Log.i(TAG, "result is: "+result.toString());
                       Data data = result.getData();
                        Log.i(TAG, "data is: "+data.toString());

                        Realtime realtime =data.getRealtime();
                        Log.i(TAG, "realtime is: "+realtime.toString());
                        Log.i(TAG, "realtime.getCity_code(): "+ realtime.getCity_code());

                        Life life  = data.getLife();
                        Log.i(TAG, "life is: "+life.toString());
                        Log.i(TAG, " life.getDate(): "+ life.getDate());


                        Info lifeInfo  = life.getInfo();///这里对象名是lifeInfo是允许的
                        Log.i(TAG, "lifeInfo is: "+lifeInfo.toString());
//                        Log.i(TAG, "chuanyi is: "+lifeInfo.toString());
                       Log.i(TAG, "chuanyi is: " + lifeInfo.getChuanyi()[0]+","+lifeInfo.getChuanyi()[1]);

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("TAG", error.getMessage(), error);
            }
        });
        mQueue.add(gsonRequest);
    }
}
package weather;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class ALLWeather {
    private String reason;
    private Result result;

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Result getResult() {
        return result;
    }

    public void setResult(Result result) {
        this.result = result;
    }
}
package weather;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class Result {
    private Data data;

    public Data getData() {
        return data;
    }

    public void setData(Data data) {
        this.data = data;
    }
}
package weather;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class Data {
    private Realtime  realtime;
    private  Life life;

    public Realtime getRealtime() {
        return realtime;
    }

    public void setRealtime(Realtime realtime) {
        this.realtime = realtime;
    }

    public Life getLife() {
        return life;
    }

    public void setLife(Life life) {
        this.life = life;
    }
}
package weather;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class Realtime {
//    "city_code":"101010100",
//            "city_name":"北京",
//            "date":"2016-09-15",
//            "time":"15:00:00",
//            "week":4,
//            "moon":"八月十五",
//            "dataUptime":1473925023,
  //  private  String  cityCode;
private  String  city_code;


//    public String getCityCode() {  ////返回null
//        return cityCode;
//    }
//
//    public void setCityCode(String cityCode) {
//        this.cityCode = cityCode;
//    }

    public String getCity_code() {
        return city_code;
    }

    public void setCity_code(String city_code) {
        this.city_code = city_code;
    }

}
package weather;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class Life {
   private  String  date;
   // private Info lifeInfo;////错误的,类定义中的属性名、对象名、类名要与json里的key一致
   private Info info;
    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public Info getInfo() {
        return info;
    }

    public void setInfo(Info info) {
        this.info = info;
    }
}
package weather;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class Info {

//    "info":{
//        "chuanyi":[
//        "热",
//                "天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。"
//        ],
//        "ganmao":[
//        "少发",
//                "各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。"
//        ],

    private  String[] chuanyi;
    private  String[] ganmao;

    public String[] getChuanyi() {
        return chuanyi;
    }

    public void setChuanyi(String[] chuanyi) {
        this.chuanyi = chuanyi;
    }

    public String[] getGanmao() {
        return ganmao;
    }

    public void setGanmao(String[] ganmao) {
        this.ganmao = ganmao;
    }
}


package com.example.liuyazhou.mythirdapplication;

/**
 * Created by liuyazhou on 2016/9/15.
 */
////Volley 三  http://blog.csdn.net/guolin_blog/article/details/17612763
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.Gson;

import java.io.UnsupportedEncodingException;

/**
 * Created by liuyazhou on 2016/9/15.
 */
public class GsonRequest<T> extends Request<T> {

    private final Response.Listener<T> mListener;

    private Gson mGson;

    private Class<T> mClass;

    public GsonRequest(int method, String url, Class<T> clazz, Response.Listener<T> listener,
                       Response.ErrorListener errorListener) {
        super(method, url, errorListener);
        mGson = new Gson();
        mClass = clazz;
        mListener = listener;
    }

    public GsonRequest(String url, Class<T> clazz, Response.Listener<T> listener,
                       Response.ErrorListener errorListener) {
        this(Method.GET, url, clazz, listener, errorListener);
    }

    @Override
    protected Response<T> parseNetworkResponse(NetworkResponse response) {
        try {
            String jsonString = new String(response.data,
                    HttpHeaderParser.parseCharset(response.headers));
            return Response.success(mGson.fromJson(jsonString, mClass),
                    HttpHeaderParser.parseCacheHeaders(response));
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        }
    }

    @Override
    protected void deliverResponse(T response) {
        mListener.onResponse(response);
    }

}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.liuyazhou.mythirdapplication.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/textView" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点击"
        android:id="@+id/button"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="74dp" />

</RelativeLayout>


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.liuyazhou.mythirdapplication">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

{//AllWeather //////返回的JSON数据
	"reason":"successed!",
	"result":{ //Result
		"data":{ //Data
			"realtime":{ //Realtime
				"city_code":"101010100",
				"city_name":"北京",
				"date":"2016-09-15",
				"time":"15:00:00",
				"week":4,
				"moon":"八月十五",
				"dataUptime":1473925023,
				"weather":{//Weather
					"temperature":"30",
					"humidity":"47",
					"info":"多云",
					"img":"1"
				},
				"wind":{ //Wind
					"direct":"西南风",
					"power":"2级",
					"offset":null,
					"windspeed":null
				}
			},
			"life":{ //Life
				"date":"2016-9-15",
				"info":{  //Info
					"chuanyi":[
						"热",
						"天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。"
					],
					"ganmao":[
						"少发",
						"各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。"
					],
					......................
jar文件需要自己下载
作者:u010002184 发表于2016/9/15 19:01:54 原文链接
阅读:130 评论:0 查看评论

Android自定义控件:图片比例适配,解决图片白边(详解View中onMeasure方法)

$
0
0

这里写图片描述

当App中涉及到布局需要展示大量图片时,你就应该考虑到“图片比例适配“的问题。当图片的宽高规格不同时,你设置展示的ImageView是否可以完好地展示填充满也就是说ImagView的比例和图片的比例不匹配,不然的话会导致图片旁会留有空白这样一系列的组图模块下拉,有的有白边,有的没有,非常影响美观。接下来的自定义控件将可以消除 展示图片有白边的问题,在不对图片进行任何裁剪、拉伸的前提下,最大限度呈现出图片样式!
这里写图片描述





一. 自定义 按比例展示高度 的控件

以上图的组图页面为例,为了达到更好地显示图片的效果,我们来自定义一个控件,这个控件的宽度填充屏幕,但是高度不确定,根据图片比例具体情况动态的设置高度值

这里写图片描述
比如说组图页面展现的图片样式都是这种:图片尺寸为 444 x 183 ,所以比例444/183 =2.43 (具体比例根据你APP中需要展示的图片类型而定!)有了比例之后,自定义控件中的 高度 就根据这个 比例 来动态设置。


这里写图片描述


1.自定义控件 继承帧布局

有了以上规划后,我们可以用一个 帧布局,以它来作为一个容器,让它的宽高严格按照图片的宽高来设置,使得图片填充这个帧布局,图片ImageView无需做任何改动,修改帧布局即可。(这里不需要考虑自定义控件去继承ImageView,太过复杂,帧布局更容易实现,而且在自定义控件和动态填充页面这方面使用非常广)

/**
 *   自定义控件, 按照比例来决定布局高度
 * Created by gym on 2016/9/15.
 */
public class RatioLayout extends FrameLayout {
    private float ratio;

    public RatioLayout(Context context) {
        super(context);
    }

    public RatioLayout(Context context, AttributeSet attrs) {
        super(context, attrs);

    }

    public RatioLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
}

2.自定义属性,布局编写

xml文件中部分代码
        <com.gym.googlemarket.ui.view.RatioLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:ratio="2.43">
        <ImageView
            android:id="@+id/iv_pic"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/subject_default" />
        </com.gym.googlemarket.ui.view.RatioLayout>


attrs.xml  自定义属性
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="RatioLayout">
        <attr name="ratio" format="float"/>
    </declare-styleable>
</resources>

如以上布局文件中代码所示,帧布局RatioLayout的宽度填充屏幕,高度随比例而定,也就是会让图片来填充满这个帧布局,所以原先设定的ImageView的属性要修改!
android:layout_height="wrap_content"
android:scaleType="fitXY"


3. 在构造方法中获取 属性值

 public RatioLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        // 获取属性值
        // attrs.getAttributeFloatValue("", "ratio", -1);
        // 当自定义属性时, 系统会自动生成属性相关id, 此id通过R.styleable来引用
        TypedArray typedArray = context.obtainStyledAttributes(attrs,
                R.styleable.RatioLayout);
        // id = 属性名_具体属性字段名称 (此id系统自动生成)
        ratio = typedArray.getFloat(R.styleable.RatioLayout_ratio, -1);
        typedArray.recycle();// 回收typearray, 提高性能

        System.out.println("ratio:" + ratio);
    }

获取属性值的两种方法:
一.
一般谷歌最常用的是attrs.getAttributeFloatValue("", "ratio", -1);

二.
(1)首先使用 context 的方法获取属性的集合数组。
这里写图片描述
这里的RatioLayout是在自定义属性里定义的,底层已经将它编译成一个R文件了,就是一个int数组
这里写图片描述

(2)调用完方法后,它会返回一个TypedArray类的数组集合,再去get到自定义的属性字段即可。(注意:typedArray.getFloat(R.styleable.RatioLayout_ratio, -1); 中的RatioLayout_ratio id 是系统自动生成:”属性名称_具体字段“)
这里写图片描述

(3) typeArray 回收,提高性能。

分析完后,明显发现第一种取属性值的方法要简单,所以仅作了解即可。






二. 重写 onMeasure 方法(详解onMeasure )

经过以上步骤,我们已经拿到了 比例值,宽度也确定下拉,现在要根据比例值来设置 自定义控件高度。这就涉及到 尺寸的调整一个布局,它有三个核心的方法:Measure测量调整它的大小;layout设置它的位置;draw具体绘制。

而我们需要在测量—–Measure里重新修改它的宽高,重写onMeasure方法。方法中需要做的步骤:
a. 获取宽度
b. 根据宽度和比例ratio, 计算控件的高度
c.. 重新测量控件

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // 1. 获取宽度
        // 2. 根据宽度和比例ratio, 计算控件的高度
        // 3. 重新测量控件

        //1000000000000000000000111001110
        System.out.println("widthMeasureSpec:" + widthMeasureSpec)

        int width = MeasureSpec.getSize(widthMeasureSpec);// 获取宽度值
        int widthMode = MeasureSpec.getMode(widthMeasureSpec);// 获取宽度模式
        int height = MeasureSpec.getSize(heightMeasureSpec);// 获取高度值
        int heightMode = MeasureSpec.getMode(heightMeasureSpec);// 获取高度模式

        // 宽度确定, 高度不确定, ratio合法, 才计算高度值
        if (widthMode == MeasureSpec.EXACTLY
                && heightMode != MeasureSpec.EXACTLY && ratio > 0) {
            // 图片宽度 = 控件宽度 - 左侧内边距 - 右侧内边距
            int imageWidth = width - getPaddingLeft() - getPaddingRight();

            // 图片高度 = 图片宽度/宽高比例
            int imageHeight = (int) (imageWidth / ratio + 0.5f);

            // 控件高度 = 图片高度 + 上侧内边距 + 下侧内边距
            height = imageHeight + getPaddingTop() + getPaddingBottom();

            // 根据最新的高度来重新生成heightMeasureSpec(高度模式是确定模式)
            heightMeasureSpec = MeasureSpec.makeMeasureSpec(height,
                    MeasureSpec.EXACTLY);
        }

        // 按照最新的高度测量控件
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

1. onMeasure 方法中的参数分析
void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
方法中两个参数widthMeasureSpecheightMeasureSpec并非是真正的宽高,而是带了一种模式的数值表示。

MeasureSpec类的两个方法,一个是getSize,一个是getMode。首先打印日志查看这个widthMeasureSpec具体值
System.out.println("widthMeasureSpec:" + widthMeasureSpec)
这里写图片描述

1073742286这么大的值,怎么可能是它的宽度呢?将它转为二进制
这里写图片描述

最前面的 ”1“代表的就是模式,后面的数值才是真正的宽度。将111001110 转换成 十进制,是462个像素(如下图蓝线所示)。我的模拟器是 480x800 ,所以这个值是合理的

这里写图片描述

所以这个widthMeasureSpec值表示的是:模式+宽度值



2. MeasureSpec中模式分析

而MeasureSpec的Mode 模式类型 有三种:
MeasureSpec.AT_MOST:至多模式, 控件有多大显示多大,类似于wrap_content
MeasureSpec.EXACTLY:确定模式, 类似宽高写死成dip,类似 match_parent
MeasureSpec.UNSPECIFIED:未指定模式,不确定宽高,动态计算测量。(举例scrollView,高度决定于它的孩子数量所占的高度)

这里写图片描述

所以之前转换成那么大的数,最前头的1代表模式 EXACTLY,而根据源码定义 1 << 30widthMeasureSpec数值之所以那么大,是因为它左移了30位。
所以真正的宽高值是 将widthMeasureSpec 转换为二进制后的后面几位数,再转换为十进制即可,当然方法中毋须那么复杂,MeasureSpec.getSize(widthMeasureSpec);即可。




3. 计算控件高度
详解完 onMeasure方法后,则可以开始重新测量布局,步骤a已完成,进行步骤b ,首先 if 判断 当宽度确定(这里的宽度一定要是一个准确值), 高度不确定, ratio合法, 才计算高度值。

 if (widthMode == MeasureSpec.EXACTLY
                && heightMode != MeasureSpec.EXACTLY && ratio > 0)

注意:在计算imageView时,一定要考虑 Padding 值,图片宽度 = 控件宽度 - 左侧内边距 - 右侧内边距
根据图片真正的宽度,使用比例计算它的高度,这时我们自定义控件的高度也出来了
控件高度 = 图片高度 + 上侧内边距 + 下侧内边距,最后我们有了真正高度数值后,再获取当前Mode类型,封装好heightMeasureSpec,让父类执行测量的最新高度值即可。

        // 按照最新的高度测量控件
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);



三.展示效果

总结就是我们就是希望有一个布局,让它完全按照图片的比例来展现原样式,所以我们自定义一个帧布局FrameLayout,让图片去填充这个帧布局,帧布局有多宽多高,展示的图片就有多宽多高。

更改前
这里写图片描述


更改后
这里写图片描述


可以明显看出,前一张小白边左右多出来的,后者是完全无贴合的,而且并没有裁剪、拉伸图片,按照完美比例展现图片。以下动图就是最后成果,彻底消灭图片留有白边的情况

这里写图片描述





如果你还是认为这个 图片比例适配的自定义控件没起到什么作用,那我现在把 比例改成1 ,呈现如下,宽高值相同,但是图片的左右两边仍然是无缝衔接,未留有白边!

这里写图片描述






希望对你有帮助:)

作者:ITermeng 发表于2016/9/15 19:29:41 原文链接
阅读:116 评论:0 查看评论

Java中的非对称加密算法

$
0
0

上篇博文中我们讲了Java中的对称加密,还没有看过的童鞋可以打开链接查看对称加密,今天我们重点讲一下Java中的非对称加密。

对于非对称加密,它需要两个密钥来进行加密和解密,分别为公钥和私钥,其相对于对称加密而言安全性更高;在Java中的非对称加密算法主要有DH算法和RSA算法。

DH算法加密:

package com.example.asiatravel.learndes.dh_util;

import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.HashMap;
import java.util.Map;

import javax.crypto.KeyAgreement;
import javax.crypto.SecretKey;
import javax.crypto.interfaces.DHPrivateKey;
import javax.crypto.interfaces.DHPublicKey;
import javax.crypto.spec.DHParameterSpec;

/**
 * Created by kuangxiaoguo on 16/9/14.
 *
 * DH加密工具类
 */
public class DHUtil {

    public static final String PUBLIC_KEY = "DHPublicKey";
    public static final String PRIVATE_KEY = "DHPrivateKey";

    /**
     * 甲方初始化并返回密钥
     *
     * @return 甲方的公钥和私钥
     * @throws Exception
     */
    public static Map<String, Object> initKey() throws Exception {
        //初始化密钥对生成器
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DH");
        keyPairGenerator.initialize(1024);// 默认是1024, 516-1024且是64的倍数
        //生成密钥对
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        //得到公钥和私钥
        DHPublicKey publicKey = (DHPublicKey) keyPair.getPublic();
        DHPrivateKey privateKey = (DHPrivateKey) keyPair.getPrivate();
        Map<String, Object> keyMap = new HashMap<>();
        keyMap.put(PUBLIC_KEY, publicKey);
        keyMap.put(PRIVATE_KEY, privateKey);
        return keyMap;
    }

    /**
     * 乙方根据甲方公钥初始化并返回密钥对
     *
     * @param key 甲方的公钥
     * @return 乙方的公钥和私钥
     * @throws Exception
     */
    public static Map<String, Object> initKey(byte[] key) throws Exception {
        //将甲方公钥从字节数组转化为publicKey
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(key);
        //实例化密钥工厂
        KeyFactory keyFactory = KeyFactory.getInstance("DH");
        //产出甲方公钥
        DHPublicKey dhPublicKey = (DHPublicKey) keyFactory.generatePublic(keySpec);
        //剖析甲方公钥获取其参数
        DHParameterSpec dhParameterSpec = dhPublicKey.getParams();
        //实例化密钥对生成器
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("DH");
        //用甲方公钥初始化密钥生成器
        keyPairGenerator.initialize(dhParameterSpec);
        //获取密钥对
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        //获取乙方公钥和私钥
        DHPublicKey publicKey = (DHPublicKey) keyPair.getPublic();
        DHPrivateKey privateKey = (DHPrivateKey) keyPair.getPrivate();
        //将乙方的公钥和私钥存入map集合中
        Map<String, Object> keyMap = new HashMap<>();
        keyMap.put(PUBLIC_KEY, publicKey);
        keyMap.put(PRIVATE_KEY, privateKey);
        return keyMap;
    }

    /**
     * 根据对方的公钥和自己的私钥生成本地密钥
     *
     * @param publicKey  对方公钥
     * @param privateKey 自己私钥
     * @return 本地密钥
     * @throws Exception
     */
    public static byte[] getSecretKey(byte[] publicKey, byte[] privateKey) throws Exception {
        //实例化密钥工厂
        KeyFactory keyFactory = KeyFactory.getInstance("DH");
        //将公钥从字节数组转化为publicKey
        X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(publicKey);
        PublicKey pubKey = keyFactory.generatePublic(publicKeySpec);
        //将私钥从字节数组转化为privateKey
        PKCS8EncodedKeySpec privateKeySpec = new PKCS8EncodedKeySpec(privateKey);
        PrivateKey priKey = keyFactory.generatePrivate(privateKeySpec);
        //根据以上公钥和私钥生成本地的密钥secretKey
        //实例化keyAgreement
        KeyAgreement keyAgreement = KeyAgreement.getInstance("DH");
        //用自己的私钥初始化keyAgreement
        keyAgreement.init(priKey);
        //结合对方的公钥进行运算
        keyAgreement.doPhase(pubKey, true);
        //开始生成本地密钥secretKey,密钥算法为对称加密算法
        SecretKey secretKey = keyAgreement.generateSecret("AES");//DES 3DES AES
        return secretKey.getEncoded();
    }

    /**
     * 从Map中获取公钥
     *
     * @param keyMap 存放公钥和密钥的Map
     * @return 公钥
     */
    public static byte[] getPublicKey(Map<String, Object> keyMap) {
        DHPublicKey key = (DHPublicKey) keyMap.get(PUBLIC_KEY);
        return key.getEncoded();
    }

    /**
     * 从Map中获取私钥
     *
     * @param keyMap 存放公钥和密钥的Map
     * @return 私钥
     */
    public static byte[] getPrivateKey(Map<String, Object> keyMap) {
        DHPrivateKey key = (DHPrivateKey) keyMap.get(PRIVATE_KEY);
        return key.getEncoded();
    }
}

RSA算法加密:

package com.example.asiatravel.learndes.rsa_util;

import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.util.HashMap;
import java.util.Map;

import javax.crypto.Cipher;

/**
 * Created by kuangxiaoguo on 16/9/14.
 *
 * RAS加密工具类
 */
public class RSAUtil {

    public static final String PUBLIC_KEY = "RSAPublicKey";
    public static final String PRIVATE_KEY = "RSAPrivateKey";

    /**
     * 生成RSA公钥和私钥
     *
     * @return RSA公钥和私钥的Map集合
     * @throws Exception
     */
    public static Map<String, Object> initKey() throws Exception {
        //初始化密钥生成器
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(1024);
        //获取密钥对
        KeyPair keyPair = keyPairGenerator.generateKeyPair();
        //获取公钥和私钥
        RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
        RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
        //把公钥和私钥存入map集合
        Map<String, Object> keyMap = new HashMap<>();
        keyMap.put(PUBLIC_KEY, publicKey);
        keyMap.put(PRIVATE_KEY, privateKey);
        return keyMap;
    }

    /**
     * 使用公钥加密
     *
     * @param data      需要加密的数据
     * @param publicKey 公钥
     * @return 加密后的字节数组
     * @throws Exception
     */
    public static byte[] encrypt(byte[] data, RSAPublicKey publicKey) throws Exception {
        Cipher cipher = Cipher.getInstance("RSA");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        return cipher.doFinal(data);
    }

    /**
     * 使用私钥解密
     *
     * @param data       被公钥加密后的数据
     * @param privateKey 解密用的私钥
     * @return 解密后的数据的字节数组
     * @throws Exception
     */
    public static byte[] decrypt(byte[] data, RSAPrivateKey privateKey) throws Exception {
        Cipher cipher = Cipher.getInstance("RSA");
        cipher.init(Cipher.DECRYPT_MODE, privateKey);
        return cipher.doFinal(data);
    }

    /**
     * 从Map集合中获取公钥
     *
     * @param keyMap 存储公钥和私钥的map集合
     * @return 返回公钥
     */
    public static RSAPublicKey getPublicKey(Map<String, Object> keyMap) {
        return (RSAPublicKey) keyMap.get(PUBLIC_KEY);
    }

    /**
     * 从Map集合中获取私钥
     *
     * @param keyMap 存储公钥和私钥的map
     * @return 返回私钥
     */
    public static RSAPrivateKey getPrivateKey(Map<String, Object> keyMap) {
        return (RSAPrivateKey) keyMap.get(PRIVATE_KEY);
    }
}

非对称加密的测试代码:

package com.example.asiatravel.learndes;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import com.example.asiatravel.learndes.dh_util.DHUtil;
import com.example.asiatravel.learndes.rsa_util.RSAUtil;
import com.example.asiatravel.learndes.util.ByteToHexUtil;

import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    private static final String DATA = "asiatravel";
    private static final String TAG = "TAG";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            testDH();
        } catch (Exception e) {
            Log.e(TAG, "onCreate: " + e.getMessage());
        }
        try {
            testRSA();
        } catch (Exception e) {
            Log.e(TAG, "onCreate: " + e.getMessage());
        }
    }

    /**
     * 测试RSA加密-->非对称加密
     */
    private void testRSA() throws Exception {
        Map<String, Object> keyMap = RSAUtil.initKey();
        RSAPublicKey publicKey = RSAUtil.getPublicKey(keyMap);
        RSAPrivateKey privateKey = RSAUtil.getPrivateKey(keyMap);
        System.out.println("RSA publicKey: " + publicKey);
        System.out.println("RSA privateKey: " + privateKey);

        //加密后的数据
        byte[] encryptResult = RSAUtil.encrypt(DATA.getBytes(), publicKey);
        System.out.println(DATA + " RSA 加密: " + ByteToHexUtil.fromByteToHex(encryptResult));

        //解密后的数据
        byte[] decryptResult = RSAUtil.decrypt(encryptResult, privateKey);
        System.out.println(DATA + " RSA 解密: " + new String(decryptResult));
    }

    /**
     * 测试DH加密-->非对称加密
     */
    private void testDH() throws Exception {
        //甲方公钥
        byte[] publicKeyA;
        //甲方私钥
        byte[] privateKeyA;
        //甲方本地密钥
        byte[] secretKeyA;
        //乙方公钥
        byte[] publicKeyB;
        //乙方私钥
        byte[] privateKeyB;
        //乙方本地密钥
        byte[] secretKeyB;

        //初始化密钥并生成甲方密钥对
        Map<String, Object> keyMapA = DHUtil.initKey();
        publicKeyA = DHUtil.getPublicKey(keyMapA);
        privateKeyA = DHUtil.getPrivateKey(keyMapA);
        System.out.println("DH 甲方公钥: " + ByteToHexUtil.fromByteToHex(publicKeyA));
        System.out.println("DH 甲方私钥: " + ByteToHexUtil.fromByteToHex(privateKeyA));

        //乙方根据甲方公钥生成乙方密钥对
        Map<String, Object> keyMapB = DHUtil.initKey(publicKeyA);
        publicKeyB = DHUtil.getPublicKey(keyMapB);
        privateKeyB = DHUtil.getPrivateKey(keyMapB);
        System.out.println("DH 乙方公钥: " + ByteToHexUtil.fromByteToHex(publicKeyB));
        System.out.println("DH 乙方私钥: " + ByteToHexUtil.fromByteToHex(privateKeyB));

        //对于甲方,根据乙方公钥和自己的私钥生成本地密钥 secretKeyA
        secretKeyA = DHUtil.getSecretKey(publicKeyB, privateKeyA);
        //对于乙方,根据其甲公钥和自己的私钥生成本地密钥 secretKeyB
        secretKeyB = DHUtil.getSecretKey(publicKeyA, privateKeyB);

        System.out.println("DH 甲方本地密钥: " + ByteToHexUtil.fromByteToHex(secretKeyA));
        System.out.println("DH 乙方本地密钥: " + ByteToHexUtil.fromByteToHex(secretKeyB));
    }

}
总结:非对称加密想对于对称加密来讲更加安全,其代码逻辑方面相对于对称加密来讲也更为复杂,所以大家需要理解着去记忆,另外注释我在代码里都写上了,不明白的童鞋可以在下面留言。
最后,附上github源码地址:点击查看非对称加密源码,希望大家多多star!

作者:kuangxiaoguo0123 发表于2016/9/15 20:20:05 原文链接
阅读:89 评论:0 查看评论

急速开发系列——Retrofit实战技巧

$
0
0

又是一年中秋佳节,祝各位中秋节快乐。

今天我们来聊聊这个最近很火的网络请求库retrofit,在此基础上会延伸出一些列的知识点。现在关于retrofit的文章很多,我之所以写这篇文章的原因在于:8月份负责假设新客户端底层的过程中首次尝试使用该库,并取得非常不错的效果,不到20天的时间内实现新产品的快速开发。

另外因为个人的原因,在写完基础框架及发布两个基础版本之后,我也选择的离职。现在,留给自己10天的时间,用来对2016年做个简短的总结,也希望能帮助各位。首先简单的说说会总结哪方面的,觉得感兴趣的同学可以关注下:

  1. 网络请求及优化,以retrofit作为出发点,其中穿插源码分析
  2. ANR原理及实现对ANR的监控
  3. App省点开发技巧
  4. apk混淆与逆向部分,其中拿一些市面上的app做示例。
  5. App快速开发框架部分,其中夹杂这一些从后端到移动端设计的敏感点,也会去整理出一个基本的app开发框架做演示
  6. 最后,就是一些杂七杂八点吧。对插件化之类的,目前市面上的文章已经非常不错了。

暂时的计划是这样。话不多说,这就开始。


Retrofit是什么?

Retrofit就是一个Http请求库,和其它Http库最大区别在于通过大范围使用注解简化Http请求。目前Retrofit 2.0底层是依赖OkHttp实现的,也就是说Retrofit本质上就是对OkHttp的更进一步封装。那么我们一定要使用它么?当然不,目前Android领域内的各种网络请求库多不胜数,随便哪一个都可以满足你大部分的需求,所以没必要纠结。不过从我个人的经验来看,如果你的服务端是restful风格,并且你希望后面使用rxjava相关的技术,那么Retrofit是你最好的选择。


Retrofit实战

添加依赖

要想使用retrofit,首先需要添加相关的依赖:

compile 'com.squareup.retrofit2:retrofit:2.0.2'

为什么要说这个呢?主要目的是告诉大家我们这里是基于此版本的。接下来,我们正式开始讲解。

常用注解

前面我们说道,retrofit通过使用注解来简化请求,这里我们先来认识一下常用的注解。retrofit中的注解大体分为以下基类:用于标注请求方式的注解,用于标记请求头的注解以及用于标记请求参数的注解。其实,任何一种Http库都提供了相关的支持,无非在retrofit中是用注解来简化。

请求方法注解

该类型的注解用于标注不同的http请求方式,主要有以下几种:

注解 说明
@GET 表明这是get请求
@POST 表明这是post请求
@PUT 表明这是put请求
@DELETE 表明这是delete请求
@PATCH 表明这是一个patch请求,该请求是对put请求的补充,用于更新局部资源
@HEAD 表明这是一个head请求
@OPTIONS 表明这是一个option请求
@HTTP 通用注解,可以替换以上所有的注解,其拥有三个属性:method,path,hasBody

我并不准备对其使用做什么说明,官网的示例已经写的非常不错。但是我看国内的很多开发者只用get和post,这是件很悲伤的事情,实际上这些请求方法各自有各自的使用场景。
最容易混淆的是put,post,patch这三者,简单的说,post表示新增,put可以理解为完整替换,而patch则是更新资源。顺便来看看官方定义:

  • POST to create a new resource when the client cannot predict the identity on the origin server (think a new order)
  • PUT to override the definition of a specified resource with what is passed in from the client
  • PATCH to override a portion of a specified resource in a predictable and effectively transactional way (if the entire patch cannot be performed, the server should not do any part of it)

接下来我们来重点说说@HTTP:
@HTTP注解我个人很少用,这里用个简单的例子来说明下:我们当前存在获取验证码的请求:

@GET("mobile/capture")
Call<ResponseBody> getCapture(@Query("phone") String phone);

用@HTTP代替后:

@HTTP(method = "get", path = "mobile/capture", hasBody = false)
Call<ResponseBody> getCapture(@Query("phone") String phone);

请求头注解

该类型的注解用于为请求添加请求头。

注解 说明
@Headers 用于添加固定请求头,可以同时添加多个。通过该注解添加的请求头不会相互覆盖,而是共同存在
@Header 作为方法的参数传入,用于添加不固定值的Header,该注解会更新已有的请求头

首先来看@Headers的示例:

//使用@Headers添加单个请求头
@Headers("Cache-Control:public,max-age=120")
@GET("mobile/active")
Call<ResponseBody> getActive(@Query("id") int activeId);

//使用@Headers添加多个请求头
@Headers({
    "User-Agent:android"
    "Cache-Control:public,max-age=120",
    })
@GET("mobile/active")
Call<ResponseBody> getActive(@Query("id") int activeId);

接下来来看@Header的示例:

@GET("mobile/active")
Call<ResponseBody> getActive(@Header("token") String token,@Query("id") int activeId);

可以看出@Header是以方法参数形势传入的,想必你现在能理解@Headers和@Header之间的区别了。

请求和响应格式注解

该类型的注解用于标注请求和响应的格式。

名称 说明
@FormUrlEncoded 表示请求发送编码表单数据,每个键值对需要使用@Field注解
@Multipart 表示请求发送multipart数据,需要配合使用@Part
@Streaming 表示响应用字节流的形式返回.如果没使用该注解,默认会把数据全部载入到内存中.该注解在在下载大文件的特别有用

请求参数类注解

该类型的注解用来标注请求参数的格式,有些需要结合上面请求和响应格式的注解一起使用。

名称 说明
@Body 多用于post请求发送非表单数据,比如想要以post方式传递json格式数据
@Filed 多用于post请求中表单字段,Filed和FieldMap需要FormUrlEncoded结合使用
@FiledMap 和@Filed作用一致,用于不确定表单参数
@Part 用于表单字段,Part和PartMap与Multipart注解结合使用,适合文件上传的情况
@PartMap 用于表单字段,默认接受的类型是Map<String,REquestBody>,可用于实现多文件上传
@Path 用于url中的占位符
@Query 用于Get中指定参数
@QueryMap 和Query使用类似
@Url 指定请求路径

我们依次对着注解进行举例说明。

@Headers

@Headers("Cache-Control: max-age=64000")
@GET("active/list")
Call<List<Active>> ActiveList();

当然@Header也支持同时设置多个:

@Headers({
    "version:1.0.0"
    "Cache-Control: max-age=64000"
})
@GET("active/list")
Call<List<Active>> ActiveList();

@Header

@GET("user")
Call<User> getUserInfo(@Header("token") token)

@Body
根据转换方式将实例对象转换为相应的字符串作为请求参数传递。比如在很多情况下,你可能需要以post的方式上传json格式的数据。那么该怎么来做呢?
我们以一个登录接口为例,该接口接受以下格式的json数据:

{"password":"abc123456","username":"18611990521"}

首先建立请求实体,为了区别其他实体,通常来说约定以Post为后缀.

public class LoginPost {
    private String username;
    private String password;

    public LoginPost(String username, String password) {
        this.username = username;
        this.password = password;
    }

}

然后定义该请求api:

@POST("mobile/login")
Call<ResponseBody> login(@Body LoginPost post);

retrofit默认采用json转化器,因此在我们发送数据的时候会将LogintPost对象映射成json数据,这样发送出的数据就是json格式的。另外,如果你不确定这种转化行为,可以强制指定retrofit使用Gson转换器:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://www.test.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build();

更详细的内容参照[retrofit官网][1],另外关于retrofit的转换器我会在另一节中进行详细的分析。

@Filed & @FiledMap
@Filed通常多用于Post请求中以表单的形势上传数据,这对任何开发者来说应该都是很常见的。

@POST("mobile/register")
Call<ResponseBody> registerDevice(@Field("id") String registerid);

@FileMap和@Filed的用途相似,但是它用于不确定表单参数个数的情况下。

@Part & @PartMap
多用于Post请求实现文件上传功能。关于这两者的具体使用参考下文的文件上传。
在这里我们来解释一下@Filed和@Part的区别。
两者都可以用于Post提交,但是最大的不同在于@Part标志上文的内容可以是富媒体形势,比如上传一张图片,上传一段音乐,即它多用于字节流传输。而@Filed则相对简单些,通常是字符串键值对。

@Path
关于@Path没什么好说,官网解释已经足够清楚了。这里着重提示:

{占位符}和PATH只用在URL的path部分,url中的参数使用Query和QueryMap 代替,保证接口定义的简洁

异步VS同步

任何一个任务都可以被分为异步任务或者同步任务,和其它大多数的请求框架一样,retrofit也分为同步请求和异步请求。在retrofit是实现这两者非常简单:

同步调用

同步请求需要借助retrofit提供的execute()方法实现。

  public void get() throws IOException {
        Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.github.com/").build();
        GitHubApi api = retrofit.create(GitHubApi.class);
        Call<ResponseBody> call = api.contributorsBySimpleGetCall(mUserName, mRepo);
        Response<ResponseBody> response = call.execute();
        if (response.isSuccessful()) {
            ResponseBody responseBody = response.body();
            //处理成功请求
        }else{
            //处理失败请求
        }
    }

异步调用

异步请求需要借助retrofit提供的enqueue()方法实现。(从这个方法名中你可以看出之该方法实现的是将请求加入请求队列)。想async-http一样,同样你需要在enqueue(()方法中为其最终结果提供相应的回调,以实现结果的处理。

    public void get() {
        Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.github.com/").build();
        GitHubApi api = retrofit.create(GitHubApi.class);

        Call<ResponseBody> call = api.contributorsBySimpleGetCall(mUserName, mRepo);
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                //处理请求成功

            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                //处理请求失败
            }
        });
    }

不难发现retrofit中实现同步和异步是如此的方便,仅仅通过提供请求的不同执行方法(execute()和enqueue())便成功的实现的请求执行方式和请求类型的解耦,实在是棒极了。

到目前为止,使用retrofit的多是在Android上,此时我们关注多事异步请求,毕竟Android中并不允许你在主线程去做一些耗时任务。

无论是同步请求还是异步请求,我们都希望这两种请求是可控的,通常来说是分为三个方面:开始请求,结束请求以及查询请求的执行状态。上面的同步请求和异步请求属于开始请求这方面,那么结束请求和查询请求呢?

我们发现无论是同步请求还是异步请求,返回给我们的都是Call接口的实例。我们稍微看一下该接口:

public interface Call<T> extends Cloneable {
  //执行同步请求
  Response<T> execute() throws IOException;

  //执行异步请求
  void enqueue(Callback<T> callback);

  //该请求是否在执行过程中
  boolean isExecuted();

  //取消当前执行的请求
  void cancel();

  //该请求是否被执行
  boolean isCanceled();

  //和java中的clone()方法含义一样,通常利用该请求实现重复请求
  Call<T> clone();

  //获取原始请求
  Request request();
}

通过上面的代码不难看出,Call接口提供了我们上面所说的执行请求,查询请求状态以及结束请求。

移除请求

看完上面的Call对象之后,我们知道要想取消一个请求(无论异步还是同步),则只需要在响应的Call对象上调用其cancel()对象即可。

public void cancle(){
            Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.github.com/").build();
        GitHubApi api = retrofit.create(GitHubApi.class);
        Call<ResponseBody> call = api.contributorsBySimpleGetCall(mUserName, mRepo);
        Response<ResponseBody> response = call.execute();
        if (response.isSuccessful()) {
            ResponseBody responseBody = response.body();
            //处理成功请求
        }else{
            //处理失败请求
        }

        ...

//取消相关请求
call.cancel();

}

多次请求

个别情况下我们可能需要一个请求执行多次。但是我们在retrofit中,call对象只能被调用一次,这时候该怎么办?
这时候我们可以利用Call接口中提供的clone()方法实现多次请求。

 public void multi_async_get() {
        Retrofit retrofit = new Retrofit.Builder().baseUrl("https://api.github.com/").build();
        GitHubApi api = retrofit.create(GitHubApi.class);
        Call<ResponseBody> call = api.contributorsBySimpleGetCall(mUserName, mRepo);
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                //请求成功
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                //请求失败
            }
        });

        call.clone().enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                //请求成功
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                //请求失败
            }
        });
    }

关于请求

上面我们简单的介绍了retrofit中注解,但是我并不准备像入门教程一样去举例说明。这里我们只对大家经常有困惑的两点做说明:

提交json格式数据

很多情况下,我们需要上传json格式的数据。比如当我们注册新用户的时候,因为用户注册时的数据相对较多,并可能以后会变化,这时候,服务端可能要求我们上传json格式的数据。此时就要@Body注解来实现。

首先定义请求实体RegisterPost:

public class RegisterPost {
   private String username;
   private int age;

   ...
}

接下来定义请求方法:

    @POST("mobile/register")
    Call register1(@Body RegisterPost post);

这样我们就能够上传json格式的数据了。

上传文件

retrofit中的实现文件上传也是非常简单的。这里我们以图片上传为例。

单张图片上传
retrofit 2.0的上传和以前略有不同,需要借助@Multipart注解、@Part和MultipartBody实现。
首先定义上传接口

@Multipart
@POST("mobile/upload")
Call<ResponseBody> upload(@Part MultipartBody.Part file);

然后来看看如何调用该方法。和调用其他请求稍有不同,这里我们需要构建MultipartBody对象:

File file = new File(url);
//构建requestbody
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
//将resquestbody封装为MultipartBody.Part对象
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile);

这样,我们就可以方便的进行上传图片了。

多张图片上传
如果有很多张图片要上传,我们总不能一张一张的来吧?好吧,我们来看看如果进行多文件(图片)上传。
在retrofit中提供了@PartMap注解,借助该对象,我们可以实现多文件的上传。同样我们来看看具体文件的定义

@Multipart
@POST("upload/upload")
Call<ResponseBody> upload(@PartMap Map<String, MultipartBody.Part> map);

和单文件上传的唯一区别就是将@Part注解换成了@PartMap注解。这意味我们可以以Map的形式进行多文件上传。具体如何调用相信你已经明白。

图文混传
无论是多文件上传还是单文件上传,本质上个都是借助@Multipart注解和MultipartBody来实现的。
这和其他网络请求框架的实现原理并无本质区别,但retrofit在图文上传方面得天独厚的优势。比如我们在注册时候既要传用户文本信息又要上传图片,结合上面的用户注册来做说明:

@Multipart
@POST("")
Call<ResponseBody> register(@Body RegisterPost post,@Part MultipartBody.Part image);

该注册接口实现了用户注册信息和用户头像的同时上传,其调用无非就是结合我们上文提到的json数据上传以及单张图上传。

文件下载

很多时候,我们可能需要暂时下载文件,但是又不希望引入其他的下载库,那么如何retrofit实现下载呢?同样,我们还是以下载图片为例

首先定义api接口如下:

@GET
Call<ResponseBody> downloadPicture(@Url String fileUrl);

关键就是获取到ResponseBody对象。我们来看获取到ResponseBody之后的处理:

 InputStream is = responseBody.byteStream();
 String[] urlArr = url.split("/");
 File filesDir = Environment.getExternalStorageDirectory();
 File file = new File(filesDir, urlArr[urlArr.length - 1]);
 if (file.exists()) file.delete();

不难发现这里的关键就是通过ResponseBody对象获取字节流,最后将其保存下来即可。实现下载就是这么简单。

这里需要注意的是如果下载的文件较大,比如在10m以上,那么强烈建议你使用@Streaming进行注解,否则将会出现IO异常.

@Streaming
@GET
Observable<ResponseBody> downloadPicture(@Url String fileUrl);

拦截器Interceptors使用

熟悉OkHttp的童鞋对Interceptors一定不会陌生。而Retrofit 2.0 底层强制依赖okHttp,所以可以使用okHttp的拦截器Interceptors 来对所有请求进行再处理。同样来说,我们经常使用拦截器实现以下功能:

  • 设置通用Header
  • 设置通用请求参数
  • 拦截响应
  • 统一输出日志
  • 实现缓存

下面我们以上各自使用的场景给出相应的代码说明:

设置通用Header

在app api接口设计中,我们往往需要客户端在请求方法时,携带appid,appkey,timestamp,signature及version等header。你可能会问前边不提到的@Headers不也同样可以做到这事情么?在方法很少的情况下,或者个别请求方法需要的情况下使用@Headers来添加当然可以,但是如果要为所有请求方法都添加还是借助拦截器使用更为方便。直接看代码:

   public static Interceptor getRequestHeader() {
        Interceptor headerInterceptor = new Interceptor() {

            @Override
            public Response intercept(Chain chain) throws IOException {
                Request originalRequest = chain.request();
                Request.Builder builder = originalRequest.newBuilder();
                builder.header("appid", "1");
                builder.header("timestamp", System.currentTimeMillis() + "");
                builder.header("appkey", "zRc9bBpQvZYmpqkwOo");
                builder.header("signature", "dsljdljflajsnxdsd");

                Request.Builder requestBuilder =builder.method(originalRequest.method(), originalRequest.body());
                Request request = requestBuilder.build();
                return chain.proceed(request);
            }

        };

        return headerInterceptor;
    }

你会发现在设置header的时候,我们有两种方法可选择:addHeader()和header()。切莫混淆两者之间的区别:

使用addHeader()不会覆盖之前设置的header,若使用header()则会覆盖之前的header

统一输出请求日志

在早期开发调试阶段,我们希望看到每个请求的详细信息,在发布时关闭这些消息。
得益于retrofit和okhttp的良好设计,可以方便的通过添加Log拦截器来实现,这里我们使用到OkHttp中的HttpLoggingInterceptor拦截器。

在retrofit 2.0中要使用日志拦截器,首先添加依赖:

compile 'com.squareup.okhttp3:logging-interceptor:3.1.2'

然后创建日志拦截器

  public static HttpLoggingInterceptor getHttpLoggingInterceptor() {
        HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
        loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        return loggingInterceptor;
    }

拦截服务器响应

通常来说,我们多利用拦截器来实现对请求的拦截。但是在很多的情况下我们需要从响应中获取响应的Headers中获取指定的header,比如在有些功能中我们需要服务端会给出我们某个活动的起始时间,需要我们客户端来判断当然活动是否可以执行。这时候,我们显然不能利用客户端本地的时间(有条原则叫做永远不要相信客户端的时间),这时候就需要服务端在将服务器的时间传给我们。为了方便,通常时间服务器的时间戳放在每个响应Header当中。

那么我们该怎么拿到这个时间戳呢?拦截器可以非常容易的帮助我们解决这个问题。这里我们假设服务器在任何一个响应的Header中都添加了time,我们要做的就是通过拦截器来获取到Header,具体见代码:

    public static Interceptor getResponseHeader() {
        Interceptor interceptor = new Interceptor() {

            @Override
            public Response intercept(Chain chain) throws IOException {
                Response response = chain.proceed(chain.request());
                String timestamp = response.header("time");
                if (timestamp != null) {
                    //获取到响应header中的time
                }
                return response;
            }
        };
        return interceptor;
    }

通过上面的响应拦截器实现了从响应中获取服务器返回的time,就是这么简单。

设置通用请求参数

在实际项目中,各个客户端往往需要向服务端传送一些固定的参数,通常来说有两种方案:

  1. 可以将这个公共的请求参数放到请求Header中
  2. 也可以将其放在请求参数中

如何添加到header中我们已经介绍过了,现在来看看如何添加公共请求参数。添加公共请求参数和添加公共Header实现原理一致,都是借助拦截器来实现,这里我们同样直接来看代码:

private void commonParamsInterceptor() {
        Interceptor commonParams = new Interceptor() {
            @Override
            public okhttp3.Response intercept(Chain chain) throws IOException {
                Request originRequest = chain.request();
                Request request;
//                String method = originRequest.method();
//                Headers headers = originRequest.headers();
                HttpUrl httpUrl = originRequest.url().newBuilder().addQueryParameter("paltform", "android").addQueryParameter("version", "1.0.0").build();
                request = originRequest.newBuilder().url(httpUrl).build();
                return chain.proceed(request);
            }
        };

        return commonParams;
    }

我个人强烈建议:如果需要添加统一的请求参数,最好将其放在请求头当中。

使用拦截器

上面我们介绍在实际开发中4中常用的拦截器,可以发现有了这些拦截器,我们可以很容易处理公共聚焦点。至于拦截器的使用,就是直接将响应的拦截器设置给OkHttpClient客户端即可,以添加日志拦截器为例:

HttpLoggingInterceptor logging = getHttpLoggingInterceptor();
//设置日志拦截器
OkHttpClient httpClient = new OkHttpClient.Builder().addInterceptor(logging).build();

Retrofit retofit=new Retrofit.Builder().baseUrl("http://www.demo.com").client(httpClient).build();    

客户端请求策略

任何一个Http请求库都少不了失败重试及请求超时的设置。来看一下retrofit中如何设置:

失败重试

retrofit通过okHttpClient来设置失败时自动重试,其使用也非常简单:

 public void setRetry(OkHttpClient.Builder builder) {
        builder.retryOnConnectionFailure(true);
    }

设置请求超时

当然,retrofit作为一个完善的网络请求框架也少不了这方面的设置。

public void setConnecTimeout(OkHttpClient.Builder builder) {
        builder.connectTimeout(10, TimeUnit.SECONDS);
        builder.readTimeout(20, TimeUnit.SECONDS);
        builder.writeTimeout(20, TimeUnit.SECONDS);

    }

添加缓存支持

在上面拦截器的使用中,我i门已经介绍了4中拦截器的使用,现在我们来介绍如何使用拦截器来实现HTTP缓存。Http缓存原理在本文中并不做重点解释。
ok,现在来看看Retrofit中如何配置使用缓存。

设置缓存的的两种方式
在retrofit中可以通过两种方式设置缓存:

    1. 通过添加 @Headers(“Cache-Control: max-age=120”) 进行设置。添加了Cache-Control 的请求,retrofit 会默认缓存该请求的返回数据。
    1. 通过Interceptors实现缓存。

这两者实现原理一致,但是适用场景不同。通常是使用Interceptors来设置通用缓存策略,而通过@Header针对某个请求单独设置缓存策略。另外,一定要记住,retrofit 2.0底层依赖OkHttp实现,这也就意味着retrofit缓存的实现同样是借助OkHttp来的。另外,无论你是决定使用那种形势的缓存,首先要为OkHttpClient设置Cache,否则缓存不会生效(retrofit并为设置默认缓存目录),Cache的设置你将在下文看到。

下面我们来具体看看,如何通过@Headers为某个方法设置缓存时间

@Headers("Cache-Control:public,max-age=120")
@GET("mobile/active")
Call<ResponseBody> getActive(@Query("id") int activeId);

这样我们就通过@Headers快速的为该api添加了缓存控制。120s内,缓存都是生效状态,即无论有网无网都读取缓存。

现在我们再来看一下如何利用拦截器来实现缓存:
首先创建缓存拦截器:

    public static Interceptor getCacheInterceptor() {
        return new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request();
                Response response = chain.proceed(request);
                return response.newBuilder().header("Cache-Control","public,max-age=120").build();
            }

        };
    }

和其它的拦截器使用一样,将其设置到OkHttpClient即可,但此时设置缓存拦截器使用的addNetworkInterceptor()方法。凡是使用该设置了该缓存拦截器的OkHttpClient都具备了缓存功能,具体代码如下:

//创建Cache
Cache cache = new Cache(AppContext.context().getCacheDir(), 10 * 1024 * 1024);

//设置拦截器和Cache
OkHttpClient httpClient = new OkHttpClient.Builder().addNetworkInterceptor(getCacheInterceptor()).cache(cache).build();

//设置OkHttpClient
Retrofit retofit=new Retrofit.Builder().baseUrl("http://www.demo.com").client(httpClient).build();   

实际开发中往往要求,有网的情况下直接从网络中获取数据,无网络的情况下才走缓存,那么此时上面的缓存拦截器就不是适用了,那这该怎么做呢?

在解决这个问题之前首先我们解决大家的一个疑惑:通过addNetworkInterceptor()和通过addInterceptor()添加的拦截器有什么不同呢?
简单来说,addNetworkInterfacetor()添加的是网络拦截器(Network Interfacetor),它会在request和response时分别被调用一次;addInterceptor()添加的是应用拦截器(Application Interceptor),他只会在response被调用一次。OkHttp中对此做了更加详细的解释[OkHttp拦截器详解][2]

我们将上面的缓存问题再明确一下:在无网络的情况下读取缓存,有网络的情况下根据缓存的过期时间重新请求,根据需求,我们创建以下拦截器:

    public static Interceptor getCacheInterceptor() {
        return new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain.request();
                if (!TDevice.hasInternet()) {
                    //无网络下强制使用缓存,无论缓存是否过期,此时该请求实际上不会被发送出去。
                    request=request.newBuilder().cacheControl(CacheControl.FORCE_CACHE)
                            .build();
                }

                Response response = chain.proceed(request);
                if (TDevice.hasInternet()) {//有网络情况下,根据请求接口的设置,配置缓存。
                //这样在下次请求时,根据缓存决定是否真正发出请求。
                    String cacheControl = request.cacheControl().toString();
                    //当然如果你想在有网络的情况下都直接走网络,那么只需要
                    //将其超时时间这是为0即可:String cacheControl="Cache-Control:public,max-age=0"
                    return response.newBuilder().header("Cache-Control", cacheControl)
                            .removeHeader("Pragma")
                            .build();
                }else{//无网络
                    return response.newBuilder().header("Cache-Control", "public,only-if-cached,max-stale=360000")
                            .removeHeader("Pragma")
                            .build();
                }

            }
        };
    }

接下来,将该请求设置到OkHttpClient,此时我们的网络拦截器和应用拦截器都添加的是上面同一个拦截器:

//创建Cache
Cache cache = new Cache(AppContext.context().getCacheDir(), 10 * 1024 * 1024);

//设置拦截器和Cache
OkHttpClient httpClient = new OkHttpClient.Builder().addNetworkInterceptor(getCacheInterceptor()).cache(cache).addInterceptor(getCacheInterceptor()).build();

//设置OkHttpClient
Retrofit retofit=new Retrofit.Builder().baseUrl("http://www.demo.com").client(httpClient).build();   

实际上,缓存策略应该由服务器指定,但是在有些情况下服务器并不支持缓存策略,这就要求我们客户端自行设置缓存策略。以上的代码假设服务端不支持缓存策略,因此器缓存策略完全由客户端通过重写request和response来实现。

不出意外,在进行一些网络请求后,我们就可以在缓存目前下看到许多的缓存文件。每一个请求的缓存文件都分为两部分,非别是以.0结尾的请求和以.1结尾的响应数据。到这里,关于缓存的部门我们就说完了。我们可能会问,必须要基于retrofit来实现缓存么?如果,以后我更换网络框架(尽管可能性非常小),这岂不是要出大问题?如果你此顾虑,完全可以自行实现一套缓存框架,其原理本质上也非常相似:基于LRU算法。你可能不了解LRU算法,但是LRUCache和LRUDiskCache想必是耳熟能详的,对此我不画蛇添足了。

设置cookie

retrofit 2.0依赖OkHttp 3.0.而在OkHttp 3.0中,对于cookie的管理依靠新增的Cookiejar和Cookie两个类。cookie的管理又分为持久化cookie和非持久化cookie。首先来看非持久化cookie:

要想实现cookie,首先添加依赖

compile 'com.squareup.okhttp3:okhttp-urlconnection:3.2.0'

非持久化cookie

非持久化cookie存储在内存中,也就意味着,其生命周期基本和app保持一致。它的使用非常简单,主要依靠CookieManager和JavaNetCookieJar两个类实现,原理部分我们放在另外一文中进行解释。
代码中设置cookie

  public void setCookies(OkHttpClient.Builder builder) {
        CookieManager cookieManager = new CookieManager();
        cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
        builder.cookieJar(new JavaNetCookieJar(cookieManager));
    }

这样我们就方便的实现了对cookie的管理,如果你需要的就是非持久化cookie,那么至此,你已经成功的完成

持久化cookie

上面的代码中实现对cookie的管理并不是持久化在本地,而是在内存当中。如果想要实现cookie的持久化应该怎么做呢?很显然,我们会考虑从response中取出cookie取出cookie保存在本地,在request的时候,从本地取出cookie添加到请求中即可,结合我们上面谈到的拦截器的使用想必你已经有了思路:通过响应拦截器从response取出cookie并保存到本地,通过请求拦截器从本地取出cookie并添加到请求中。其实,如果你对爬虫很熟悉,那么这个问题对你而言更加小菜一碟,当然这里的通过拦截器来实现cookie的持久化并不是我们的重点。我们希望深入的了解一下java当中对cookie是怎么管理的,准确的说是哪些类负责来处理这事情,最后我们希望在非持久化cookie的基础上进行扩展实现持久化cookie。
关于这方面,我会在另外一张中进行深入的分析。

作者:dd864140130 发表于2016/9/15 21:32:39 原文链接
阅读:152 评论:0 查看评论

一个简单的例子带你了解jni流程

$
0
0



1、前言

jni是java调用原生语言来进行开发的一座桥梁,原生语言一般是指c,c++语言,即jni机制可以让java语言调用c,c++语言,也可以让c,c++语言调用java语言。这样的相互调用,互相结合,主要是出现在对性能要求较高的应用上。在android中,由于它的开发语言也是java,所以也可以利用原生语言进行开发,对jni的了解和使用有助于我们在做应用的时候,对于时间性能要求较高的代码段,可以用原生语言来开发,然后java通过jni机制来调用它,就可以达到很好的效果。

总的来说,jni是一种机制,一种可以然java和原生语言互相调用的机制。

学习jni开发需要有c++或者c基础。


2、基本环境要求

利用jni机制开发,对于开发环境是有特别要求的,因为c,c++语言的开发也需要环境的支持。

单纯的android开发:jdk,sdk,eclipse,adt。

如果要在eclipse上进行jni开发,那么需要:ndk,cygwin,ant。

本文接下来的例子都是使用eclipse的方法进行开发,使用android studio的朋友,由于编译器自身的集成,利用jni机制进行开发会更加方便,但是为了更深入的了解jni机制,本文使用的是eclipse。


对于android的基本开发环境的安装就不提了,jni需要的开发环境这里就提一下,方便完全没基础的朋友安装环境。

2.1 ant的安装

ant是一个命令行构建工具,它主要是驱动目标进行任务的进行。在jni中一般是用来驱动命令。它的安装可以去ant下载官网下载。一般下载zip压缩包即可。然后解压安装到我们指定的目录(自由的目录位置)。最关键的一步是添加环境变量。

假如你的ant根目录是E:\apache-ant-1.9.7。那么你只需要复制这个文件夹下的bin路径,添加到高级环境变量的path变量中。注意与path变量本身存在的值必须添加分号进行分割。

比如:



随后我们用命令行工具输入ant -version命令。如果安装成功就会输出ant的版本号。



2.2cygwin的安装


由于android原生语言开发环境包(NDK)是基于类unix系统运行的,它包含了许多shell脚本,而它们又是不可以直接在window系统运行的,因此需要安装cygwin模拟类unix系统的环境。cygwin的下载地址

由于笔者的安装环境以及完成,所以并不能图文并茂德截图讲解。为了方便大家的安装,笔者决定直接使用参考资料的截图。


















读者只需要按照笔者的截图顺序去做就可以安装成功了,cygwin一定要安装成功,否则会导致ndk运行的失败,这也是为什么笔者花这么多图的原因。


2.3 NDK的安装

NDK即android原生语言开发环境包。下载地址:NDK的下载

我们下载好压缩包解压到我们指定的目录,然后需要添加环境变量,比如笔者的NDK安装在:E:\android-ndk-r11b。那么只需要在path变量里面添加此路径即可,记得用分号分隔。




随后我们在命令行窗口输入ndk-build命令。如果有以下输出说明安装成功。





2.4 在eclipse里面配置jni开发环境


需要指定NDK的目录路径。笔者的如下:




3、实践过程进行总结

实践才是检验真理的唯一标准,通过上面的环境配置,我们就可以搭建一个可以开发jni的android环境了,接下来就一步一步引导大家去开发一个jni实例。


首先新建一个空白的android项目。

我们新建一个类,专门处理native函数。笔者命名为CppUtils。内容如下:

public class CppUtils {

	static {
		System.loadLibrary("cppUtils");
	}

	/**
	 * 从CPP获取字符串
	 * 
	 * @return
	 */
	public native String getStringFromCPP();

	

}

这里是简单的从c++原生代码中获取字符串。


3.1 System.loadLibrary

java在java.lang.System包提供了两个静态方法用于加载共享库(一种含原生语言实现的可供android程序调用的库),分别是load,loadLibrary两个方法,由于我们在程序启动的时候就需要加载共享库,因此放在静态代码块中加载。这两个方法的参数是共享库名称。注意共享库为了跨平台使用,它的文件名称会包含一些前缀,而共享库文件的后缀是so。比如我们加载cppUtils共享库,其实他的全名是:libcppUtils.so。


3.2 native标签

native标签用于告诉java编辑器,它的方法是由原生语言实现的,因此不需要去实现它。native方法用分号结束。即如果你希望一个方法用原生语言实现,那么你就给它声明为native方法。


3.3 生成原生语言头文件

由于原生语言头文件需要根据字节码文件来进行分析,所以,在生成头文件之前,我们必须对项目进行build。之后打开我们项目的bin/classes的文件夹,笔者的文件夹如下图:



接着我们就要针对CppUtils.class进行分析生成头文件,在我们对编写原生语言头文件的时候,最好借助工具生成,而不是手写,这样出错的概率才会更低,否则很容易发生jni桥无法将java函数与原生方法联系起来的错误。生成头文件的方法,就是使用命令行工具。比如笔者这里就是,先进入自己项目要分析的java文件的目录下,然后生成头文件。生成头文件的命令如下:
javah -classpath bin/classes com.example.jnibolg.CppUtils

完整的操作过程看下图:




然后回到eclipse中,刷新下我们的项目,我们会发现多了一个以h结尾的文件,这个就是机器生成的头文件。




关于原声函数的实现以及祥光头文件,我们需要放在jni文件夹中,因此,我们接下来需要在项目中建立jni文件夹,并将相关文件放进去。




这样我们的原生文件就生成了。


3.4 分析头文件

接下来我们需要分析头文件的内容,有助于帮助我们了解整个实现过程。首先我们看头文件的代码:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_example_jnibolg_CppUtils */

#ifndef _Included_com_example_jnibolg_CppUtils
#define _Included_com_example_jnibolg_CppUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_example_jnibolg_CppUtils
 * Method:    getStringFromCPP
 * Signature: ()Ljava/lang/String;
 */
<pre name="code" class="cpp">JNIEXPORT jstring JNICALL Java_com_example_jnibolg_CppUtils_getStringFromCPP
  (JNIEnv *, jobject);

#ifdef __cplusplus}#endif#endif

首先我们可以看到jni.h头文件被包含了,这个头文件包含了jni机制为了实现从java对象到原生语言的映射的规则。因此,我们一切java调用原生函数,或者原声函数调用java,都必须通过它来实现。
其次我们关注这个函数声明:
JNIEXPORT jstring JNICALL Java_com_example_jnibolg_CppUtils_getStringFromCPP
  (JNIEnv *, jobject);

这个函数声明说明了,它实现的是jnibolg包下的CppUtils类的getStringFromCPP方法,返回的是jstring类型,这是一个jni类型,映射到java的string类型。这里不详细解析jni类型映射,以免变得复杂,主要以实现一个例子了解整个流程为主。

JNIEnv 是一个指针,指向jni对象。通过它,就可以调用jni.h头文件包含的所有函数。即,它就是一个指向jni对象的指针。

jobject表示当前函数所实现方法所属的java对象,这里指的是CppUtils的一个实例。


有了头文件,那么接下来,我们需要用到NDK了,这就需要获取NDK的支持。


3.5 获取NDK的支持

右击我们的项目,找到android tools,点击add native support,这样就可以获取NDK开发包的支持了。点击之后,会需要你填写一个名称,这个名称将会用作共享库的名称,同时这个名字也是我们CppUtils中System.loadLibrary所包含的文件名称。



确定之后,我们看jni文件夹,会生成NDK支持的文件。




其中cppUtils.cpp是我们要进行实现的C++文件。Android.mk是NDK的makefile文件,通过他,可以将原生语言的实现生成为共享库。我们之前安装的cygwin目的就是支持NDK的系统构建。我们打开我们NDK的目录,笔者的如下:


可以发现NDK有很多makefile文件,这些文件都是用于帮助构成共享库的。


3.6 分析mk文件的内容


我们打开Android.mk文件,内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := cppUtils
LOCAL_SRC_FILES := cppUtils.cpp

include $(BUILD_SHARED_LIBRARY)


LOCAL_PATH,这是一个用于定位源文件的宏,在Android.mk文件中,它必须是第一个变量。
include $(CLEAR_VARS),作用是清除命名冲突,因为Android构建系统在单次执行中会构建多个文件和模块,为了避免LOCAL_<NAME>模式的变量名冲突,必须包含这条指令。
LOCAL_MODULE,指的是生成的共享库的名称,为了适应不同的架构,生成的共享库会含有lib前缀。
LOCAL_SRC_FILES,指的是生成共享库的源文件,多个源文件之间用空格隔开。
include $(BUILD_SHARED_LIBRARY)指令表示生成一个共享库。

关于共享库的生成,可以有更复杂的组织,比如多个共享库依赖某个静态库.....这里不详细讲解,只为了让大家理解整个流程。我们要知道的就是,基本的生成流程都是按照上面这几条指令顺序来的。


3.7实现原生代码 


我们打开cppUtils.cpp文件,会发现是空的。如果包含了jni.h头文件指令,我们把他删掉,因为我们即将要实现的头文件已经包含了jni,h头文件,所以我们的源文件无需再次包含。

接着我们将头文件需要实现的函数声明复制过来,为了避免出错,强烈建议复制过来。然后修改成下面这个样子。

#include "com_example_jniblog_CppUtils.h"

JNIEXPORT jstring JNICALL Java_com_example_jniblog_CppUtils_getStringFromCpp
  (JNIEnv * env, jobject jthis)
{
   return env->NewStringUTF("来自C++");
}


3.8调用native函数

做完了上面这些,就可以函数调用了。调用和正常的java调用没有差别的。比如这里就是:

private TextView text;
	CppUtils cppUtils = new CppUtils();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		text = (TextView) findViewById(R.id.text);
		text.setText("从C++获取字符串:" + cppUtils.getStringFromCpp());
	}




3.9 总结


从整个流程下来,我们可以清晰的知道每一步要怎么做为什么这么做这么做的意义,虽然并没有深入讲解,但是对于整个jni流程来说,是一个很好的了解。



---------文章写自:HyHarden---------

--------博客地址:http://blog.csdn.net/qq_25722767-----------


作者:qq_25722767 发表于2016/9/15 21:41:33 原文链接
阅读:80 评论:0 查看评论

[大话技术]话聊有趣的23种设计模式

$
0
0

一 摘要

在网上看见了23种设计模式的有趣见解这篇文章,作者以轻松的语言比喻了java的23种模式,觉得蛮有意思的,我在其基础上再加工一下,分享给大家.大家一起学习.一起进步.

1、FACTORY(工厂模式)

漫谈

追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory.

理解

工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

代码

var XMLHttpFactory =function(){};      //这是一个简单工厂模式
 2   XMLHttpFactory.createXMLHttp =function(){
 3     var XMLHttp = null;
 4     if (window.XMLHttpRequest){
 5       XMLHttp = new XMLHttpRequest()
 6     }elseif (window.ActiveXObject){
 7       XMLHttp = new ActiveXObject("Microsoft.XMLHTTP")
 8     }
10   return XMLHttp;
11   }
12   //XMLHttpFactory.createXMLHttp()这个方法根据当前环境的具体情况返回一个XHR对象。
13   var AjaxHander =function(){
14     var XMLHttp = XMLHttpFactory.createXMLHttp();
15     ...
16   }

知识扩展

工厂模式又区分简单工厂模式和抽象工厂模式,上面介绍的是简单工厂模式,这种模式用的更多也更简单易用。抽象工厂模式的使用方法就是 - 先设计一个抽象类,这个类不能被实例化,只能用来派生子类,最后通过对子类的扩展实现工厂方法。

2、BUILDER(建造模式)

漫谈

BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你” builder。(这一定比美军在伊拉克用的翻译机好卖)

理解

建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。

代码

function workerBuilder() {
    this.workOne = function() {
         //建房子骨架
    }
    this.workTwo=function() {
         //建睡房
    }
    this.workThree=function() {
         //建厨房
    }
    this.workFour=function() {
         //建客厅
    }
    //....

    this.getResult = function() {
         //建成房子
     var house = new House();
     //house.HouseFrame ...
     return house; 
    }
}

3、FACTORY METHOD(工厂方法模式)

漫谈

FACTORY METHOD—请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。

理解

工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

代码

//1>. 邮件发送[实现]类
function MailSender() {
    this.to = '';
    this.title = '';
    this.content = '';
}
MailSender.prototype.send = function() {
    //send body
}

//2>. 短信发送[实现]类
function SmsSender() {
    this.to = '';
    this.title = '';
    this.content = '';
}
SmsSender.prototype.send = function() {
    //send body
}
//3. 创建一个工厂类:
function SendFactory() {
    this.sender = null;
}
SendFactory.prototype.produce = function(type) {
    var me = this;
    if (type == 'mail') {
        me.sender = new MailSender();
    } else if (type == 'sms') {
        me.sender = new SmsSender();
    }
   return me.sender;
}
//4. 使用这个工厂类:
var factory = new SendFactory();
var sender = factory.produce('mail'); //sms
sender.to = 'toName#mail.com';
sender.title = '邮件测试标题!';
sender.content = '发送内容';
sender.send();

4、PROTOTYPE(原型模式)

漫谈

PROTOTYPE—跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。(100块钱一份,你要不要)

理解

原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。

代码

function Master(){
    this.blood = 100;
    this.level = 6;
}

var noumenon = new Master();
noumenon.level = 9;
var ektype = Object.create(noumenon);
console.log(ektype);

5、SINGLETON(单例模式)

漫谈 

SINGLETON—俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Sigleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)

理解

单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。

使用

 var functionGroup  =newfunction myGroup(){
2     this.name ='Darren';
3     this.getName =function(){
4       returnthis.name
5     }
6     this.method1 =function(){}
7     ...
8   }

6、ADAPTER(适配模式)

漫谈

ADAPTER—在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我).

理解

适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。

代码

 //假如有一个3个字符串参数的函数,但是现在拥有的却是一个包含三个字符串元素的对象,那么就可以用一个配置器来衔接二者
 2   var clientObject = {
 3      str1:'bat',
 4      str2:'foo',
 5      str3:'baz'
 6   }
 7   function interfaceMethod(str1,str2,str3){
 8     alert(str1)
 9   }
10   //配置器函数
11   function adapterMethod(o){
12      interfaceMethod(o.str1, o.str2, o.str3);
13   }
14   adapterMethod(clientObject)
15   //adapterMethod函数的作为就在于对interfaceMethod函数进行包装,并把传递给它的参数转换为后者需要的形式。

7、BRIDGE(桥接模式)

漫谈

BRIDGE—早上碰到MM,要说早上好,晚上碰到MM,要说晚上好;碰到MM穿了件新衣服,要说你的衣服好漂亮哦,碰到MM新做的发型,要说你的头发好漂亮哦。不要问我“早上碰到MM新做了个发型怎么说”这种问题,自己用BRIDGE组合一下不就行了

理解

桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化.

代码

//错误的方式
 2   //这个API根据事件监听器回调函数的工作机制,事件对象被作为参数传递给这个函数。本例中并没有使用这个参数,而只是从this对象获取ID。
 3   addEvent(element,'click',getBeerById);
 4   function(e){
 5      var id =this.id;
 6      asyncRequest('GET','beer.url?id='+ id,function(resp){
 7         //Callback response
 8         console.log('Requested Beer: '+ resp.responseText);
 9      });
10   }
11 
12   //好的方式
13   //从逻辑上分析,把id传给getBeerById函数式合情理的,且回应结果总是通过一个毁掉函数返回。这么理解,我们现在做的是针对接口而不是实现进行编程,用桥梁模式把抽象隔离开来。
14   function getBeerById(id,callback){
15      asyncRequest('GET','beer.url?id='+ id,function(resp){
16         callback(resp.responseText)
17      });
18   }
19   addEvent(element,'click',getBeerByIdBridge);
20   function getBeerByIdBridge(e){
21      getBeerById(this.id,function(beer){
22         console.log('Requested Beer: '+ beer);
23      });
24   } 

8、COMPOSITE(组合模式)

漫谈

COMPOSITE—Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么呀,T恤加裙子加包包,正好配成一套呀,小姐,麻烦你包起来。” “……”,MM都会用Composite模式了,你会了没有?

理解

组合模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待.

代码

// DynamicGallery Class
  var DynamicGallery =function (id) { // 实现Composite,GalleryItem组合对象类 
     this.children = [];
     this.element = document.createElement('div');
     this.element.id = id;
     this.element.className ='dynamic-gallery';
  }
  DynamicGallery.prototype = {
     // 实现Composite组合对象接口 
     add: function (child) {
        this.children.push(child);
        this.element.appendChild(child.getElement());
     },
     remove: function (child) {
        for (var node, i =0; node =this.getChild(i); i++) {
           if (node == child) {
              this.children.splice(i, 1);
              break;
           }
        }
        this.element.removeChild(child.getElement());
     },
     getChild: function (i) {
        returnthis.children[i];
     },
     // 实现DynamicGallery组合对象接口 
     hide: function () {
        for (var node, i =0; node =this.getChild(i); i++) {
           node.hide();
        }
        this.element.style.display ='none';
     },
     show: function () {
        this.element.style.display ='block';
        for (var node, i =0; node = getChild(i); i++) {
           node.show();
        }
     },
     // 帮助方法 
     getElement: function () {
        returnthis.element;
     }
  }


var GalleryImage =function (src) { // 实现Composite和GalleryItem组合对象中所定义的方法 
     this.element = document.createElement('img');
     this.element.className ='gallery-image';
     this.element.src = src;
  }
  GalleryImage.prototype = {
     // 实现Composite接口 
     // 这些是叶结点,所以我们不用实现这些方法,我们只需要定义即可 
     add: function () { },
     remove: function () { },
     getChild: function () { },
     // 实现GalleryItem接口 
     hide: function () {
        this.element.style.display ='none';
     },
     show: function () {
        this.element.style.display ='';
     },
     // 帮助方法 
     getElement: function () {
        returnthis.element;
     }
  }
//  再创建叶对象类
var GalleryImage =function (src) { // 实现Composite和GalleryItem组合对象中所定义的方法 
     this.element = document.createElement('img');
     this.element.className ='gallery-image';
     this.element.src = src;
  }
  GalleryImage.prototype = {
     // 实现Composite接口 
     // 这些是叶结点,所以我们不用实现这些方法,我们只需要定义即可 
     add: function () { },
     remove: function () { },
     getChild: function () { },
     // 实现GalleryItem接口 
     hide: function () {
        this.element.style.display ='none';
     },
     show: function () {
        this.element.style.display ='';
     },
     // 帮助方法 
     getElement: function () {
        returnthis.element;
     }
  }
  //现在我们可以使用这两个类来管理图片:
  var topGallery =new DynamicGallery('top-gallery'); 
  topGallery.add(new GalleryImage('/img/image-1.jpg')); 
  topGallery.add(new GalleryImage('/img/image-2.jpg')); 
  topGallery.add(new GalleryImage('/img/image-3.jpg')); 
  var vacationPhotos =new DyamicGallery('vacation-photos'); 
  for(var i =0, i <30; i++){ 
    vacationPhotos.add(new GalleryImage('/img/vac/image-'+ i +'.jpg')); 
  } 
  topGallery.add(vacationPhotos); 
  topGallery.show(); 
  vacationPhotos.hide();

9、DECORATOR(装饰模式)

漫谈

DECORATOR—Mary过完轮到Sarly过生日,还是不要叫她自己挑了,不然这个月伙食费肯定玩完,拿出我去年在华山顶上照的照片,在背面写上“最好的的礼物,就是爱你的Fita”,再到街上礼品店买了个像框(卖礼品的MM也很漂亮哦),再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起来……,我们都是Decorator,最终都在修饰我这个人呀,怎么样,看懂了吗?

理解

装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。

代码

//创建一个命名空间为myText.Decorations
  var myText= {};
  myText.Decorations={};
  myText.Core=function(myString){
     this.show =function(){return myString;}
  }
  //第一次装饰
  myText.Decorations.addQuestuibMark =function(myString){
     this.show =function(){return myString.show()+'?';};
  }
  //第二次装饰
  myText.Decorations.makeItalic =function(myString){
     this.show =function(){return'<li>'+myString.show()+'</li>'};
  }
  //得到myText.Core的实例
  var theString =new myText.Core('this is a sample test String');
  alert(theString.show());  //output 'this is a sample test String'
  theString =new myText.Decorations.addQuestuibMark(theString);
  alert(theString.show());  //output 'this is a sample test String?'
  theString =new myText.Decorations.makeItalic (theString);
  alert(theString.show());  //output '<li>this is a sample test String</li>'

10、FACADE(门面模式)

漫话

FACADE—我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我拍张照片了。

理解

门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。

代码

var addEvent =function(el,type,fn){
     if(window.addEventListener){
        el.addEventListener(type,fn);
     }elseif(window.attachEvent){
        el.attachEvent('on'+type,fn);
     }else{
        el['on'+type] = fn;
     }
  }

11、FLYWEIGHT(享元模式)

漫话

FLYWEIGHT—每天跟MM发短信,手指都累死了,最近买了个新手机,可以把一些常用的句子存在手机里,要用的时候,直接拿出来,在前面加上 MM的名字就可以发送了,再不用一个字一个字敲了。共享的句子就是Flyweight,MM的名字就是提取出来的外部特征,根据上下文情况使用。

理解

享元模式:FLYWEIGHT在拳击比赛中指最轻量级。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能影响内蕴状态,它们是相互独立的。将可以共享的状态和不可以共享的状态从常规类中区分开来,将不可以共享的状态从类里剔除出去。客户端不可以直接创建被共享的对象,而应当使用一个工厂对象负责创建被共享的对象。享元模式大幅度的降低内存中对象的数量。

代码

 //汽车登记示例
 2   var Car =function(make,model,year,owner,tag,renewDate){
 3     this.make=make;
 4     this.model=model;
 5     this.year=year;
 6     this.owner=owner;
 7     this.tag=tag;
 8     this.renewDate=renewDate;
 9   }
10   Car.prototype = {
11     getMake:function(){
12       returnthis.make;
13     },
14     getModel:function(){
15       returnthis.model;
16     },
17     getYear:function(){
18       returnthis.year;
19     },
20     transferOwner:function(owner,tag,renewDate){
21       this.owner=owner;
22       this.tag=tag;
23       this.renewDate=renewDate;
24     },
25     renewRegistration:function(renewDate){
26       this.renewDate=renewDate;
27     }
28   }
29   //数据量小到没多大的影响,数据量大的时候对计算机内存会产生压力,下面介绍享元模式优化后
30   //包含核心数据的Car类
31   var Car=function(make,model,year){
32     this.make=make;
33     this.model=model;
34     this.year=year;
35   }
36   Car.prototype={
37     getMake:function(){
38       returnthis.make;
39     },
40     getModel:function(){
41       returnthis.model;
42     },
43     getYear:function(){
44       returnthis.year;
45     }
46   }
47   //中间对象,用来实例化Car类
48   var CarFactory=(function(){
49     var createdCars = {};
50     return {
51       createCar:function(make,model,year){
52         var car=createdCars[make+"-"+model+"-"+year];
53         return car ? car : createdCars[make +'-'+ model +'-'+ year] =(new Car(make,model,year));
54       }
55     }
56   })();
57   //数据工厂,用来处理Car的实例化和整合附加数据
58   var CarRecordManager = (function() {
59     var carRecordDatabase = {};
60     return {
61       addCarRecord:function(make,model,year,owner,tag,renewDate){
62         var car = CarFactory.createCar(make, model, year);
63         carRecordDatabase[tag]={
64           owner:owner,
65           tag:tag,
66           renewDate:renewDate,
67           car:car
68       }
69     },
70       transferOwnership:function(tag, newOwner, newTag, newRenewDate){
71         var record=carRecordDatabase[tag];
72         record.owner = newOwner;
73         record.tag = newTag;
74         record.renewDate = newRenewDate;
75       },
76       renewRegistration:function(tag,newRenewDate){
77         carRecordDatabase[tag].renewDate=newRenewDate;
78       },
79       getCarInfo:function(tag){
80         return carRecordDatabase[tag];
81       }
82     }
83   })();

12、PROXY(代理模式)

漫谈

PROXY—跟MM在网上聊天,一开头总是“hi,你好”,“你从哪儿来呀?”“你多大了?”“身高多少呀?”这些话,真烦人,写个程序做为我的Proxy吧,凡是接收到这些话都设置好了自动的回答,接收到其他的话时再通知我回答,怎么样,酷吧。

理解

代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并传入。
行为模式

代码

var Publication =new Interface('Publication', ['getIsbn', 'setIsbn', 'getTitle', 'setTitle', 'getAuthor', 'setAuthor', 'display']);
  var Book =function(isbn, title, author) {
      //...
  } 
  // implements Publication
  implements(Book,Publication);

  /* Library interface. */
  var Library =new Interface('Library', ['findBooks', 'checkoutBook', 'returnBook']);

  /* PublicLibrary class. */
  var PublicLibrary =function(books) {
      //...
  };
  // implements Library
  implements(PublicLibrary,Library); 

  PublicLibrary.prototype = {
      findBooks: function(searchString) {
         //...
      },
      checkoutBook: function(book) {
          //...
      },
      returnBook: function(book) {
          //...
      }
  };

  /* PublicLibraryProxy class, a useless proxy. */
  var PublicLibraryProxy =function(catalog) { 
      this.library =new PublicLibrary(catalog);
  };
  // implements Library
  implements(PublicLibraryProxy,Library);

  PublicLibraryProxy.prototype = {
      findBooks: function(searchString) {
          returnthis.library.findBooks(searchString);
      },
      checkoutBook: function(book) {
          returnthis.library.checkoutBook(book);
      },
      returnBook: function(book) {
          returnthis.library.returnBook(book);
      }
  };

13、CHAIN OF RESPONSIBLEITY( 责任链模式)

漫谈

CHAIN OF RESPONSIBLEITY—晚上去上英语课,为了好开溜坐到了最后一排,哇,前面坐了好几个漂亮的MM哎,找张纸条,写上“Hi,可以做我的女朋友吗?如果不愿意请向前传”,纸条就一个接一个的传上去了,糟糕,传到第一排的MM把纸条传给老师了,听说是个老处女呀,快跑!

理解

责任链模式:在责任链模式中,很多对象由每一个对象对其下家的引用而接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。客户并不知道链上的哪一个对象最终处理这个请求,系统可以在不影响客户端的情况下动态的重新组织链和分配责任。处理者有两个选择:承担责任或者把责任推给下家。一个请求可以最终不被任何接收端对象所接受。

代码

var order500=function(orderType,pay,stock){  
   if(orderType===1&& pay===true){  
       console.log('<span style="color:#009900;">500元订金预购,得到100优惠券</span>');  
   }else{  
      order200(orderType,pay,stock);  
   }  
}  

var order200 = function(orderType,pay,stock){  
    if(orderType===2&& pay===true){  
        console.log('<span style="color:#ff0000;">100元订金预购,得到50优惠券</span>');  
    }else{  
        orderNormal(orderType,pay,stock);  
    }  
}  

var orderNormal = function(orderType,pay,stock){  
    if(stock>0){  
        console.log('普通购买,无优惠券');  
    }else{  
        console.log('手机库存不足');  
    }  
}  

//测试结果  
order500(1,true,500); //500元定金预购,得到100优惠券  
order500(1,false,500); //普通购买,无优惠券  
order500(2,true,500);//200元定金预购,得到50优惠券  
order500(3,false,500)//手机购买无优惠  
order500(3,false,0); //手机库存不足  

14、COMMAND(命令模式)

漫谈

俺有一个MM家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男朋友送COMMAND,就数你最小气,才请我吃面

理解

命令模式:命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消

代码

car Calculator={
     add:function(x,y){
        return x+y;
     },
     substract:function(x,y){
        return x-y;
     },
     multiply:function(x,y){
        return x*y;
     },
     divide:function(x,y){
        return x/y;
     }
  }
  Calculator.calc =function(command){
     return Calculator[command.type](command.op1,command.opd2)
  };
  Calculator.calc({type:'add',op1:1,op2:1});
  Calculator.calc({type:'substract',op1:5,op2:2});
  Calculator.calc({type:'multiply',op1:5,op2:2});
  Calculator.calc({type:'divide',op1:8,op2:4});

15、INTERPRETER(解释器模式)

漫谈

俺有一个《泡MM真经》,上面有各种泡MM的攻略,比如说去吃西餐的步骤、去看电影的方法等等,跟MM约会时,只要做一个Interpreter,照着上面的脚本执行就可以了。

理解

解释器模式:给定一个语言后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式将描述怎样在有了一个简单的文法后,使用模式设计解释这些语句。在解释器模式里面提到的语言是指任何解释器对象能够解释的任何组合。在解释器模式中需要定义一个代表文法的命令类的等级结构,也就是一系列的组合规则。每一个命令对象都有一个解释方法,代表对命令对象的解释。命令对象的等级结构中的对象的任何排列组合都是一个语言。

代码

16、ITERATOR(迭代子模式)

漫谈

ITERATOR—我爱上了Mary,不顾一切的向她求婚。
Mary:“想要我跟你结婚,得答应我的条件”
我:“什么条件我都答应,你说吧”
Mary:“我看上了那个一克拉的钻石”
我:“我买,我买,还有吗?”
Mary:“我看上了湖边的那栋别墅”
我:“我买,我买,还有吗?”
Mary:“你的小弟弟必须要有50cm长”
我脑袋嗡的一声,坐在椅子上,一咬牙:“我剪,我剪,还有吗?”
……

理解

迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集本身隔开。迭代子模式简化了聚集的界面。每一个聚集对象都可以有一个或一个以上的迭代子对象,每一个迭代子的迭代状态可以是彼此独立的。迭代算法可以独立于聚集角色变化。

17、MEDIATOR(调停者模式)

漫谈

四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这里拿,赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话。

理解

调停者模式:调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。

18、MEMENTO(备忘录模式)

漫谈

同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。

理解

备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。

19、OBSERVER(观察者模式)

漫谈

想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦

理解

观察者模式:观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。

代码

//使用时间监听器可以让多个函数相应一个事件
  var fn1 =function(){
     //code
  }
  var fn2 =function(){
     //code
  }
  addEvent(element,'click',fn1);
  addEvent(element,'click',fn2)

  //而时间处理函数就办不到
  element.onclick = fn1;
  element.onclick = fn2;

20、STATE(状态模式)

漫谈

跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电影再去泡吧怎么样?”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。

理解

状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子类。

21、STRATEGY

漫谈

跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,单目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。

理解

策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。

22、TEMPLATE METHOD(模板方法模式)  

漫谈

看过《如何说服女生上床》这部经典文章吗?女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八大步骤(Template method),但每个步骤针对不同的情况,都有不一样的做法,这就要看你随机应变啦(具体实现);

理解

模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。

23、VISITOR(访问者模式)

漫谈

情人节到了,要给每个MM送一束鲜花和一张卡片,可是每个MM送的花都要针对她个人的特点,每张卡片也要根据个人的特点来挑,我一个人哪搞得清楚,还是找花店老板和礼品店老板做一下Visitor,让花店老板根据MM的特点选一束花,让礼品店老板也根据每个人特点选一张卡,这样就轻松多了;

理解

访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。访问者模式适用于数据结构相对未定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很容易,就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中,而不是分散到一个个的节点类中。当使用访问者模式时,要将尽可能多的对象浏览逻辑放在访问者类中,而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。

作者:BaiHuaXiu123 发表于2016/9/15 22:13:30 原文链接
阅读:125 评论:0 查看评论

objective-c Ojbective-C基础教程

$
0
0

OC基础

一、Foundation

[NSNull null] => 表示NSNull对象

nil => (null) 表示nil值

基础

NSString:字符串

NSInteger、NSUInteger

集合

NSArray:数组,顺序存储,总不可存储基本数据类型,只能存放类的实例;需要把基础数据类型、结构体放入其中需要放入NSNumber\NSValue中进行封装

NSSet:集合,hash无序,查找效率比NSArray高

NSDictonary:字典

数据封装

NSNumber:主要是用来封装ANSI C内置的数据,比如char,float,int,bool,(NSInteger是基础类型,NSNumber是一个类)

NSValue:主要用来封装数据结构,包括系统(CGPoint/CGSize等)和自定义

NSData:主要是提供一块原始数据的封装,方便数据的封装与流动,比较常见的是NSString/NSImage数据的封装与传递。在应用中,最常用于访问存储在文件中或者网络资源中的数据。

其他

NSDate:日期、时间

NSTimer :定时器

以上为不可变类型,其对可变类型如:NSMutableString 、NSMutableInteger 、NSMutableArray

二、协议和委托

协议仅仅声明方法,用作接口,本身并不实现,遵循该协议的类则负责具体实现。@protocol、@required、@required

委托是一种避免对复杂的UIKit对象(比如缺省的UIApplication对象)进行子类化的机制。在这种机制下,您可以不进行子类化和方法重载,而是将自己的定制代码放到委托对象中,从而避免对复杂对象进行修改。

比如:Student遵循_protocolDelegate协议,实现work方法;Student委托给Teacher,Teacher通过call_work使Student执行协议方法work

三、interface类

初始化

如果实现一个初始化程序,确保调用超类的初始化;

如果超类的初始化不止一个方法,选择一个指定初始值设定;

属性

@property(nonatomic,strong)NSString*name;

系统为我们自动生成的。命名规则是以_为前缀,加上属性名,如_name

@property与@synthesize配对使用,用来让编译器自动生成与数据成员同名的方法声明

C++中的.也可以用于访问属性:user.id 类似 [user id];user.id = 12类似[user setId:12];

@property特性:分为三类,分别是:

原子性:

atomic(默认)线程安全

nonatomic 非线程安全(nonatomic比atomic速度要快)

存取器控制:

readwrite(默认)同时拥有setter和getter。

readonly 只有getter

内存管理:

assign(默认)表示单纯的复制,

retain:在setter方法中,需要对传入的对象进行引用计数加1的操作

strong:是retain的一个可选的替代。strong跟retain的相同(语意上更好更能体现对象的关系)

weak:在setter方法中,需要对传入的对象不进行引用计数加1的操作。(就是对传入的对象没有所有权)

copy:与strong类似,但区别在于实例变量是对传入对象的副本拥有所有权,而非对象本身。

类目

使用类目,为现有的类NSString扩展方法,是新方法成为类的一部分,且子类也能继承

类目的不足:

类目还可以覆写现有类的方法。覆写后,原始方法则无法调用。

类目不能为类扩展实例属性。

方法

重载方法description,实现类指针打印的描述字符串;

单例模式:重载实现类方法allocWithZone,(实现限制方法,限制这个类只能创建一个对象)

四、内存管理

init\alloc\copy\retain之后需要有相互对应的release

其他方法获取一个对象(一般是autorelease)如arrayWithCapacity、arrayWithObjects是自动释放不需要release;

对象拷贝

对象要具备复制功能,必须实现协议或者协议,自定义对象实现协议的CopyWithZone方法/MutableCopyWithZone方法;常用的可复制对象有:NSString、NSMutableString、NSArray等;

拷贝方法:

copy:产生对象的副本是不可变的

mutableCopy:产生的对象的副本是可变的

浅拷贝和深拷贝

浅拷贝值复制对象本身,对象里的属性、包含的对象不做复制(默认)

深拷贝则既复制对象本身,对象的属性也会复制一份

五、KVC

键值:forKey/valueForKey

键路径:forKeyPath/valueForKeyPath

运算:左侧指定集合的运算;需要解析字符串路径,所以性能慢

NSPredicate谓词

六、数据持久化 归档

NSKeyedArchiver

NSKeyedUnarchiver

七、文件管理

沙盒

路径:~资源库/Application Support/iPhone Simulator/文件夹

Documents:程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

Library:系统文件,存储程序的默认设置或其它状态信息;Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

tmp:临时文件的地方。App重启会被清空。

文件操作

NSFileManager 是一个单例类 (全局的能被整个系统访问到)对文件进行管理的各种操作(遍历\创建\拷贝\移动\删除)

NSFileHandle 操作系统返回给我们程序的文件指针,用NSData类型的二进制数据,对文件进行读写的

OC进阶

一、语法

静态分析器:

1、函数对象释放检查:NS_RETURNS_RETAINED\NS_RETURNS_NOT_RETAINED

2、不放回对象:CLANG_ANALYZER_NORETURN

instancetype和id的异同

1、相同点

都可以作为方法的返回类型

2、不同点

①instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;

②instancetype只能作为返回值,不能像id那样作为参数,比如下面的写法:

二、利用arc4random_uniform()产生随机数

Objective-C 中有个arc4random()函数用来生成随机数且不需要种子

但是这个函数生成的随机数范围比较大,需要用取模的算法对随机值进行限制,

有点麻烦。其实Objective-C有个更方便的随机数函数arc4random_uniform(x),

可以用来产生0~(x-1)范围内的随机数,

不需要再进行取模运算。如果要生成1~x的随机数,可以这么写:arc4random_uniform(x)+1

三、消息处理方法performSelector: withObject:和直接调用的区别

Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;

- (void) fooFirstInput:(NSString*) first secondInput:(NSString*) second {

NSLog(@"Logs %@ then %@", first, second);

}

然后调用它

[selfperformSelector:@selector(fooFirstInput:secondInput:)withObject:@"first"withObject:@"second"afterDelay:1.5];

1、performSelector是运行时系统负责去找方法的,在编译时候不做任何校验;如果直接调用编译是会自动校验。如果fooFirstInput:secondInput不存在,那么直接调用在编译时候就能够发现(借助Xcode可以写完就发现),但是使用performSelector的话一定是在运行时候才能发现(此时程序崩溃);Cocoa支持在运行时向某个类添加方法,即方法编译时不存在,但是运行时候存在,这时候必然需要使用performSelector去调用。所以有时候如果使用了performSelector,为了程序的健壮性,会使用检查方法

- (BOOL)respondsToSelector:(SEL)aSelector;

2、直接调用方法时候,一定要在头文件中声明该方法的使用,也要将头文件import进来。而使用performSelector时候,可以不用import头文件包含方法的对象,直接用performSelector调用即可。

afterDelay 是一种dispatch_after()函数,支持在未来的某个时间执行

四、如何在Objective-C中定义代码块(Block)

1、作为变量

//1

返回值类型 (^block的名称)(参数类型) = ^返回值类型(参数) {...};

//2

returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...};

2、作为属性

//1@property (nonatomic, copy) 返回值类型 (^block的名称)(参数类型);

//2@property (nonatomic, copy) returnType (^blockName)(parameterTypes);

3、作为方法声明的参数

//1

- (void)方法名:(返回值类型 (^)(参数类型))block的名称;

//2

- (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName;

4、作为方法实现的参数

//1

[对象/类 方法名:^返回值类型 (参数) {...}];

//2

[someObject someMethodThatTakesABlock:^returnType (parameters) {...}];

5、作为typedef

//1typedef 返回值类型 (^类型名称)(参数类型);

类型名称 block的名称 = ^返回值类型(参数) {...};

//2typedef returnType (^TypeName)(parameterTypes);

TypeName blockName = ^returnType(parameters) {...};

五、Grand Central Dispatch (GCD)

voiddispatch_once( dispatch_once_t *predicate, dispatch_block_t block);

该函数接收一个dispatch_once用于检查该代码块是否已经被调度的谓词(是一个长整型,实际上作为BOOL使用)。它还接收一个希望在应用的生命周期内仅被调度一次的代码块,对于本例就用于shared实例的实例化。

dispatch_once不仅意味着代码仅会被运行一次,而且还是线程安全的

+ (AccountManager *)sharedManager {

static AccountManager *sharedAccountManagerInstance = nil;

static dispatch_once_t predicate; dispatch_once(&predicate, ^{

sharedAccountManagerInstance = [[self alloc] init];

});

return sharedAccountManagerInstance;

http://www.yqcq.gov.cn/e/space/?userid=590412&vvtb=20160915Km8Xj.html
http://www.yqcq.gov.cn/e/space/?userid=590417&eeip=20160915Re2Pk.html
http://www.yqcq.gov.cn/e/space/?userid=590422&wuxo=20160915Ve0Rc.html
http://www.yqcq.gov.cn/e/space/?userid=590428&hmzz=20160915Wd6Dl.html
http://www.yqcq.gov.cn/e/space/?userid=590430&prjx=20160915Pm9Jv.html
http://www.yqcq.gov.cn/e/space/?userid=590436&yvcv=20160915Xu8Ef.html
http://www.yqcq.gov.cn/e/space/?userid=590438&ptnl=20160915Lo7To.html
http://www.yqcq.gov.cn/e/space/?userid=590443&wufg=20160915Zw3Nv.html
http://www.yqcq.gov.cn/e/space/?userid=590449&gycr=20160915Wo4Pp.html
http://www.yqcq.gov.cn/e/space/?userid=590451&fazx=20160915Fh2Qz.html
http://www.yqcq.gov.cn/e/space/?userid=590456&dpua=20160915Qr4Sy.html
http://www.yqcq.gov.cn/e/space/?userid=590461&krei=20160915Pz8Ou.html
http://www.yqcq.gov.cn/e/space/?userid=590463&hrwm=20160915Du6Kk.html
http://www.yqcq.gov.cn/e/space/?userid=590468&rtak=20160915Iz7Ok.html
http://www.yqcq.gov.cn/e/space/?userid=590470&qtse=20160915Yd5Gq.html
http://www.yqcq.gov.cn/e/space/?userid=590476&zwqu=20160915Vb7Bh.html
http://www.yqcq.gov.cn/e/space/?userid=590480&aztg=20160915Aj9Lf.html
http://www.yqcq.gov.cn/e/space/?userid=590483&qisl=20160915Uz2Zm.html
http://www.yqcq.gov.cn/e/space/?userid=590487&weqp=20160915Ur5Nq.html
http://www.yqcq.gov.cn/e/space/?userid=590489&tfjw=20160915Wk8Rt.html
http://www.yqcq.gov.cn/e/space/?userid=590495&sasi=20160915Am1En.html
http://www.yqcq.gov.cn/e/space/?userid=590500&thbz=20160915Pz5Rw.html
http://www.yqcq.gov.cn/e/space/?userid=590502&staa=20160915Qi7Ks.html
http://www.yqcq.gov.cn/e/space/?userid=590508&fekc=20160915Eq1Fl.html
http://www.yqcq.gov.cn/e/space/?userid=590512&kgvx=20160915Dw5Kr.html
http://www.yqcq.gov.cn/e/space/?userid=590514&kzzt=20160915Ib7Om.html
http://www.yqcq.gov.cn/e/space/?userid=590519&ljne=20160915Qb8Tq.html
http://www.yqcq.gov.cn/e/space/?userid=590521&pkat=20160915At2Rm.html
http://www.yqcq.gov.cn/e/space/?userid=590527&whpe=20160915Sj1Uq.html
http://www.yqcq.gov.cn/e/space/?userid=590532&gzgh=20160915Fs1Zc.html
http://www.yqcq.gov.cn/e/space/?userid=590533&vpoc=20160915Ex1Xs.html
http://www.yqcq.gov.cn/e/space/?userid=590538&jisg=20160915Td5Bg.html
http://www.yqcq.gov.cn/e/space/?userid=590540&lmbk=20160915Pv9Lk.html
http://www.yqcq.gov.cn/e/space/?userid=590544&hbqs=20160915Qs9Oc.html
http://www.yqcq.gov.cn/e/space/?userid=590549&dkeb=20160915On0Bi.html
http://www.yqcq.gov.cn/e/space/?userid=590551&ttrk=20160915Ns5Rk.html
http://www.yqcq.gov.cn/e/space/?userid=590555&ejxa=20160915Jx4Ae.html
http://www.yqcq.gov.cn/e/space/?userid=590560&kmgj=20160915Cl0Pe.html
http://www.yqcq.gov.cn/e/space/?userid=590562&sxgj=20160915Er8Gl.html
http://www.yqcq.gov.cn/e/space/?userid=590566&hsli=20160915Ju2Xp.html
http://www.yqcq.gov.cn/e/space/?userid=590569&oziy=20160915Pz7Uz.html
http://www.yqcq.gov.cn/e/space/?userid=590573&mofw=20160915Di2Os.html
http://www.yqcq.gov.cn/e/space/?userid=590579&bqld=20160915Uk6Bk.html
http://www.yqcq.gov.cn/e/space/?userid=590582&jyyp=20160915Fj4Um.html
http://www.yqcq.gov.cn/e/space/?userid=590587&luxu=20160915Qc2Ft.html
http://www.yqcq.gov.cn/e/space/?userid=590592&gato=20160915Zc1Pu.html
http://www.yqcq.gov.cn/e/space/?userid=590595&mzgm=20160915Pk3Mq.html
http://www.yqcq.gov.cn/e/space/?userid=590599&udft=20160915Ix7Wg.html
http://www.yqcq.gov.cn/e/space/?userid=590601&xrgd=20160915Hh7Gq.html
http://www.yqcq.gov.cn/e/space/?userid=590605&nrpk=20160915Bo4Kj.html
http://www.yqcq.gov.cn/e/space/?userid=590610&jjrk=20160915Fp9Yy.html
http://www.yqcq.gov.cn/e/space/?userid=590612&wqbh=20160915Vx1Db.html
http://www.yqcq.gov.cn/e/space/?userid=590617&fybf=20160915Oc4Cb.html
http://www.yqcq.gov.cn/e/space/?userid=590619&lsvf=20160915Yl9Nh.html
http://www.yqcq.gov.cn/e/space/?userid=590624&kydk=20160915Vs6Tq.html
http://www.yqcq.gov.cn/e/space/?userid=590630&uzon=20160915Qc0Ei.html
http://www.yqcq.gov.cn/e/space/?userid=590631&wytc=20160915Mn6Bw.html
http://www.yqcq.gov.cn/e/space/?userid=590636&fkpm=20160915Ck3Ug.html
http://www.yqcq.gov.cn/e/space/?userid=590639&cqef=20160915Gu5Zq.html
http://www.yqcq.gov.cn/e/space/?userid=590644&dayx=20160915Am4Jy.html
http://www.yqcq.gov.cn/e/space/?userid=590649&pviu=20160915Yb2Qf.html
http://www.yqcq.gov.cn/e/space/?userid=590652&oqmy=20160915Ye9Ww.html
http://www.yqcq.gov.cn/e/space/?userid=590657&sctd=20160915Ad7Xr.html
http://www.yqcq.gov.cn/e/space/?userid=590659&qwkg=20160915Ce3Mc.html
http://www.yqcq.gov.cn/e/space/?userid=590664&uuhk=20160915Vt8Ar.html
http://www.yqcq.gov.cn/e/space/?userid=590668&xcud=20160915Bs8Hx.html
http://www.yqcq.gov.cn/e/space/?userid=590670&uiof=20160915Pr0Pc.html
http://www.yqcq.gov.cn/e/space/?userid=590676&vkda=20160915Ir1Fx.html
http://www.yqcq.gov.cn/e/space/?userid=590680&qxyx=20160915Yp8Ur.html
http://www.yqcq.gov.cn/e/space/?userid=590686&tzui=20160915Od8Ni.html
http://www.yqcq.gov.cn/e/space/?userid=590688&yiks=20160915Wb8Vi.html
http://www.yqcq.gov.cn/e/space/?userid=590694&lgai=20160915Xn7Je.html
http://www.yqcq.gov.cn/e/space/?userid=590697&ocql=20160915Go0Pv.html
http://www.yqcq.gov.cn/e/space/?userid=590701&xyke=20160915Ly6Pv.html
http://www.yqcq.gov.cn/e/space/?userid=590707&mvuj=20160915Xa1Rz.html
http://www.yqcq.gov.cn/e/space/?userid=590709&imzh=20160915Am9Qa.html
http://www.yqcq.gov.cn/e/space/?userid=590714&whlf=20160915Qo9Do.html
http://www.yqcq.gov.cn/e/space/?userid=590720&dfcf=20160915Ge9Qj.html
http://www.yqcq.gov.cn/e/space/?userid=590722&gvxd=20160915Wu5Zy.html
http://www.yqcq.gov.cn/e/space/?userid=590728&txzw=20160915Rq0Sb.html
http://www.yqcq.gov.cn/e/space/?userid=590733&jgzs=20160915Ij8Dn.html
http://www.yqcq.gov.cn/e/space/?userid=590736&mhjo=20160915Xi8Th.html
http://www.yqcq.gov.cn/e/space/?userid=590741&nlyg=20160915Sr6Gs.html
http://www.yqcq.gov.cn/e/space/?userid=590746&uizg=20160915Lq0Qy.html
http://www.yqcq.gov.cn/e/space/?userid=590749&qvst=20160915Tk7Yl.html
http://www.yqcq.gov.cn/e/space/?userid=590753&arnw=20160915Vf4Fj.html
http://www.yqcq.gov.cn/e/space/?userid=590760&wwyv=20160915Ye6Kr.html
http://www.yqcq.gov.cn/e/space/?userid=590762&xbzp=20160915Xc2Iv.html
http://www.yqcq.gov.cn/e/space/?userid=590767&ffen=20160915Ey2Tj.html
http://www.yqcq.gov.cn/e/space/?userid=590770&tcwk=20160915Cm0Kh.html
http://www.yqcq.gov.cn/e/space/?userid=590774&bsql=20160915Xv5Vk.html
http://www.yqcq.gov.cn/e/space/?userid=590780&osxu=20160915Sl4Aw.html
http://www.yqcq.gov.cn/e/space/?userid=590782&hdlu=20160915Mj2Lg.html
http://www.yqcq.gov.cn/e/space/?userid=590787&ufvl=20160915Fw1Vy.html
http://www.yqcq.gov.cn/e/space/?userid=590793&oiqa=20160915Wq7Ej.html
http://www.yqcq.gov.cn/e/space/?userid=590794&nwgo=20160915Qd6Vh.html
http://www.yqcq.gov.cn/e/space/?userid=590800&pnjr=20160915Em7Kr.html
http://www.yqcq.gov.cn/e/space/?userid=590805&ufeq=20160915Eb2Pb.html
http://www.yqcq.gov.cn/e/space/?userid=590808&bsfd=20160915Da9Tj.html
http://www.yqcq.gov.cn/e/space/?userid=590813&pfht=20160915Zd2Vq.html
http://www.yqcq.gov.cn/e/space/?userid=590816&zumh=20160915Jk1Jw.html
http://www.yqcq.gov.cn/e/space/?userid=590820&hycr=20160915Dd0Kw.html
http://www.yqcq.gov.cn/e/space/?userid=590826&tzlz=20160915Rs8Bb.html
http://www.yqcq.gov.cn/e/space/?userid=590828&otmk=20160915Wl8Wg.html
http://www.yqcq.gov.cn/e/space/?userid=590834&izeu=20160915Yl1Dh.html
http://www.yqcq.gov.cn/e/space/?userid=590836&qrqn=20160915Bt7Fc.html
http://www.yqcq.gov.cn/e/space/?userid=590840&eusw=20160915Mq8Jp.html
http://www.yqcq.gov.cn/e/space/?userid=590846&kzur=20160915Qu9Cj.html
http://www.yqcq.gov.cn/e/space/?userid=590848&gwme=20160915Fd9Py.html
http://www.yqcq.gov.cn/e/space/?userid=590853&qobt=20160915Iv0Jz.html
http://www.yqcq.gov.cn/e/space/?userid=590859&aovp=20160915Ai9Qu.html
http://www.yqcq.gov.cn/e/space/?userid=590861&dwhd=20160915Ya1Ps.html
http://www.yqcq.gov.cn/e/space/?userid=590866&alqf=20160915Df1Nk.html
http://www.yqcq.gov.cn/e/space/?userid=590872&okcz=20160915Ch4Gl.html
http://www.yqcq.gov.cn/e/space/?userid=590878&magr=20160915Nh5Rp.html
http://www.yqcq.gov.cn/e/space/?userid=590885&lacx=20160915As1Uk.html
http://www.yqcq.gov.cn/e/space/?userid=590886&fltf=20160915Jy8Wp.html
http://www.yqcq.gov.cn/e/space/?userid=590892&xygi=20160915By1Zr.html
http://www.yqcq.gov.cn/e/space/?userid=590893&acnl=20160915Du0Qs.html
http://www.yqcq.gov.cn/e/space/?userid=590899&bkqf=20160915Pi3Bc.html
http://www.yqcq.gov.cn/e/space/?userid=590904&tncd=20160915Oq1Nb.html
http://www.yqcq.gov.cn/e/space/?userid=590906&sgwp=20160915Ao8Nv.html
http://www.yqcq.gov.cn/e/space/?userid=590910&ffss=20160915Vv8Qw.html
http://www.yqcq.gov.cn/e/space/?userid=590913&dfnq=20160915Ie8Gz.html
http://www.yqcq.gov.cn/e/space/?userid=590918&npxb=20160915Ep2Hr.html
http://www.yqcq.gov.cn/e/space/?userid=590923&kujn=20160915Wu9Pm.html
http://www.yqcq.gov.cn/e/space/?userid=590925&dxlq=20160915Nu3Hu.html
http://www.yqcq.gov.cn/e/space/?userid=590931&yugl=20160915Be2In.html
http://www.yqcq.gov.cn/e/space/?userid=590935&avsx=20160915Iw5Rw.html
http://www.yqcq.gov.cn/e/space/?userid=590938&yfyx=20160915Ra5Gl.html
http://www.yqcq.gov.cn/e/space/?userid=590945&aprb=20160915Dg7Va.html
http://www.yqcq.gov.cn/e/space/?userid=590946&smaw=20160915Ld3Br.html
http://www.yqcq.gov.cn/e/space/?userid=590951&dvfu=20160915Cw9Nm.html
http://www.yqcq.gov.cn/e/space/?userid=590957&cehy=20160915Xl0Kk.html
http://www.yqcq.gov.cn/e/space/?userid=590958&yups=20160915Fs6Lr.html
http://www.yqcq.gov.cn/e/space/?userid=590964&mmlv=20160915Hk7Rx.html
http://www.yqcq.gov.cn/e/space/?userid=590966&smmi=20160915Cf0Me.html
http://www.yqcq.gov.cn/e/space/?userid=590971&hpyi=20160915Sz5Ov.html
http://www.yqcq.gov.cn/e/space/?userid=590976&olct=20160915De3Do.html
http://www.yqcq.gov.cn/e/space/?userid=590978&fkbp=20160915Jj2Dh.html
http://www.yqcq.gov.cn/e/space/?userid=590983&fbkn=20160915Bz6Hb.html
http://www.yqcq.gov.cn/e/space/?userid=590984&eoug=20160915Ah6Rx.html
http://www.yqcq.gov.cn/e/space/?userid=590989&qjoa=20160915Ha4Tw.html
http://www.yqcq.gov.cn/e/space/?userid=590993&nspi=20160915An8Vg.html
http://www.yqcq.gov.cn/e/space/?userid=590995&euwi=20160915Mx8Vk.html
http://www.yqcq.gov.cn/e/space/?userid=591001&kegb=20160915Ms2Rl.html
http://www.yqcq.gov.cn/e/space/?userid=591003&kjcl=20160915Fl2Lx.html
http://www.yqcq.gov.cn/e/space/?userid=591008&rigw=20160915Xh1Hv.html
http://www.yqcq.gov.cn/e/space/?userid=591013&xfcr=20160915Cw7Ex.html
http://www.yqcq.gov.cn/e/space/?userid=591015&akrk=20160915Ry0Xz.html
http://www.yqcq.gov.cn/e/space/?userid=591021&padt=20160915Ip2Jv.html
http://www.yqcq.gov.cn/e/space/?userid=591023&llbr=20160915Sh7Pc.html
http://www.yqcq.gov.cn/e/space/?userid=591028&uyoy=20160915Kk3Da.html
http://www.yqcq.gov.cn/e/space/?userid=591033&eike=20160915Tw0Os.html
http://www.yqcq.gov.cn/e/space/?userid=591035&jjav=20160915Ot2Gh.html
http://www.yqcq.gov.cn/e/space/?userid=591040&qyiz=20160915Ob4Ta.html
http://www.yqcq.gov.cn/e/space/?userid=591046&rirh=20160915Ge4Fx.html
http://www.yqcq.gov.cn/e/space/?userid=591049&brwh=20160915Iu9Ac.html
http://www.yqcq.gov.cn/e/space/?userid=591053&htom=20160915No3So.html
http://www.yqcq.gov.cn/e/space/?userid=591055&uopt=20160915Pr5Ad.html
http://www.yqcq.gov.cn/e/space/?userid=591059&cvrs=20160915Rt9Nl.html
http://www.yqcq.gov.cn/e/space/?userid=591065&thus=20160915Ux7Cn.html
http://www.yqcq.gov.cn/e/space/?userid=591067&vyut=20160915Jj2Rd.html
http://www.yqcq.gov.cn/e/space/?userid=591071&bprv=20160915Yf2Za.html
http://www.yqcq.gov.cn/e/space/?userid=591073&kkdk=20160915Un6Qr.html
http://www.yqcq.gov.cn/e/space/?userid=591077&fwll=20160915Sq6Zl.html
http://www.yqcq.gov.cn/e/space/?userid=591079&pjha=20160915Aj3Zn.html
http://www.yqcq.gov.cn/e/space/?userid=591084&txvv=20160915Kb6Ov.html
http://www.yqcq.gov.cn/e/space/?userid=591089&upir=20160915Ia7Sn.html
http://www.yqcq.gov.cn/e/space/?userid=591091&hfej=20160915Ny5Ne.html
http://www.yqcq.gov.cn/e/space/?userid=591096&wuso=20160915Aj8Ee.html
http://www.yqcq.gov.cn/e/space/?userid=591098&oxiq=20160915Dr5Su.html
http://www.yqcq.gov.cn/e/space/?userid=591103&sxwr=20160915Wj3Yb.html
http://www.yqcq.gov.cn/e/space/?userid=591108<zu=20160915So9Sp.html
http://www.yqcq.gov.cn/e/space/?userid=591110&eiyw=20160915Vn4Nk.html
http://www.yqcq.gov.cn/e/space/?userid=591115&rdgd=20160915Wq6Ku.html
http://www.yqcq.gov.cn/e/space/?userid=591117&cijz=20160915Rk6Th.html
http://www.yqcq.gov.cn/e/space/?userid=591122&udnw=20160915Dd4Om.html
http://www.yqcq.gov.cn/e/space/?userid=591127&juic=20160915Ye4Mg.html
http://www.yqcq.gov.cn/e/space/?userid=591128&srta=20160915Ql7Lh.html
http://www.yqcq.gov.cn/e/space/?userid=591133&bhmr=20160915Rc0Sf.html
http://www.yqcq.gov.cn/e/space/?userid=591135&mhik=20160915Pm2Fy.html
http://www.yqcq.gov.cn/e/space/?userid=591141&svhv=20160915Rw5Dx.html
http://www.yqcq.gov.cn/e/space/?userid=591144&juoe=20160915Eu0Iw.html
http://www.yqcq.gov.cn/e/space/?userid=591148&ggmn=20160915Bo4Ic.html
http://www.yqcq.gov.cn/e/space/?userid=591154&nfed=20160915Js6Le.html
http://www.yqcq.gov.cn/e/space/?userid=591155&pero=20160915Ib9Xk.html
http://www.yqcq.gov.cn/e/space/?userid=591160&idqs=20160915Qg6Ez.html
http://www.yqcq.gov.cn/e/space/?userid=591162&hmnu=20160915Ni1Jr.html
http://www.yqcq.gov.cn/e/space/?userid=591167&uist=20160915Ty8Oh.html
http://www.yqcq.gov.cn/e/space/?userid=591169&cnhq=20160915Tk8Cz.html
http://www.yqcq.gov.cn/e/space/?userid=591174&fqek=20160915Ge4Gp.html
http://www.yqcq.gov.cn/e/space/?userid=591180&efwc=20160915Py9Sc.html
http://www.yqcq.gov.cn/e/space/?userid=591182&irot=20160915Fz8Pg.html
http://www.yqcq.gov.cn/e/space/?userid=591187&gpbb=20160915Ct7Ph.html
http://www.yqcq.gov.cn/e/space/?userid=591193&cpch=20160915Ec4Vl.html
http://www.yqcq.gov.cn/e/space/?userid=591194&bjyl=20160915Un6Ux.html
http://www.yqcq.gov.cn/e/space/?userid=591200&soiq=20160915Iq7Rf.html
http://www.yqcq.gov.cn/e/space/?userid=591201&xqli=20160915Gb5Dl.html
http://www.yqcq.gov.cn/e/space/?userid=591207&hjoi=20160915Wi9Jl.html
http://www.yqcq.gov.cn/e/space/?userid=591210&kojg=20160915Bk9Ng.html
http://www.yqcq.gov.cn/e/space/?userid=591214&bljj=20160915Io3Ub.html
http://www.yqcq.gov.cn/e/space/?userid=591219&vrcu=20160915Tp1Jb.html
http://www.yqcq.gov.cn/e/space/?userid=591221&blxl=20160915Ye2Xf.html
http://www.yqcq.gov.cn/e/space/?userid=591226&rnep=20160915Sj6Qb.html
http://www.yqcq.gov.cn/e/space/?userid=591232&nztt=20160915Pw9Hq.html
http://www.yqcq.gov.cn/e/space/?userid=591234&lqlr=20160915Px9Wu.html
http://www.yqcq.gov.cn/e/space/?userid=591240&gvua=20160915Mj3Qq.html
http://www.yqcq.gov.cn/e/space/?userid=591241¨g=20160915Ef5Tf.html
http://www.yqcq.gov.cn/e/space/?userid=591247&ldbu=20160915Xf4Zj.html
http://www.yqcq.gov.cn/e/space/?userid=591252&fwcc=20160915Yf9Qq.html
http://www.yqcq.gov.cn/e/space/?userid=591254&cjug=20160915Or5Om.html
http://www.yqcq.gov.cn/e/space/?userid=591258&pcgz=20160915Uu7Kx.html
http://www.yqcq.gov.cn/e/space/?userid=591261&rtfl=20160915Nc1Ht.html
http://www.yqcq.gov.cn/e/space/?userid=591267&fdtw=20160915Ub6Ey.html
http://www.yqcq.gov.cn/e/space/?userid=591272&xmrf=20160915Zn2Xe.html
http://www.yqcq.gov.cn/e/space/?userid=591274&vpxq=20160915Xe8Db.html
http://www.yqcq.gov.cn/e/space/?userid=591278&kdhf=20160915Sa1Ht.html
http://www.yqcq.gov.cn/e/space/?userid=591280&swnc=20160915Rs3Gb.html
http://www.yqcq.gov.cn/e/space/?userid=591286&tfzd=20160915Gd2Th.html
http://www.yqcq.gov.cn/e/space/?userid=591290&ldkw=20160915So4Cf.html
http://www.yqcq.gov.cn/e/space/?userid=591294&bgia=20160915Xk5Ig.html
http://www.yqcq.gov.cn/e/space/?userid=591299&ktsi=20160915Dz1Ar.html
http://www.yqcq.gov.cn/e/space/?userid=591301&vqzq=20160915Ra5Oy.html
http://www.yqcq.gov.cn/e/space/?userid=591306&cuib=20160915Ul2Ia.html
http://www.yqcq.gov.cn/e/space/?userid=591311&zvwe=20160915Dd2Xe.html
http://www.yqcq.gov.cn/e/space/?userid=591313&lxgl=20160915Pc4Tb.html
http://www.yqcq.gov.cn/e/space/?userid=591319&dlwu=20160915Ag7Jg.html
http://www.yqcq.gov.cn/e/space/?userid=591322&usgf=20160915Oc1Ji.html
http://www.yqcq.gov.cn/e/space/?userid=591326&qdao=20160915Gb4Oo.html
http://www.yqcq.gov.cn/e/space/?userid=591331&yooo=20160915Nu4Xm.html
http://www.yqcq.gov.cn/e/space/?userid=591333&rdox=20160915Iy0Ob.html
http://www.yqcq.gov.cn/e/space/?userid=591338&qbwx=20160915Zp3Jb.html
http://www.yqcq.gov.cn/e/space/?userid=591339&fuhs=20160915Gd4Gi.html
http://www.yqcq.gov.cn/e/space/?userid=591344&pmkf=20160915De8In.html
http://www.yqcq.gov.cn/e/space/?userid=591350&xsyu=20160915Cg0Ps.html
http://www.yqcq.gov.cn/e/space/?userid=591352<zx=20160915Zo6Ed.html
http://www.yqcq.gov.cn/e/space/?userid=591357&cuff=20160915Mn8Oy.html
http://www.yqcq.gov.cn/e/space/?userid=591359&qwpf=20160915Bx7Iw.html
http://www.yqcq.gov.cn/e/space/?userid=591363&lmvz=20160915Un2No.html
http://www.yqcq.gov.cn/e/space/?userid=591364&xuuj=20160915Hm3Dx.html
http://www.yqcq.gov.cn/e/space/?userid=591368&isox=20160915Wo9Dc.html
http://www.yqcq.gov.cn/e/space/?userid=591373&sxyx=20160915Lw4Nr.html
http://www.yqcq.gov.cn/e/space/?userid=591374&bmje=20160915Ir0Ym.html
http://www.yqcq.gov.cn/e/space/?userid=591379&fcsw=20160915Um8Uf.html
http://www.yqcq.gov.cn/e/space/?userid=591380&iaex=20160915Zl5Bo.html
http://www.yqcq.gov.cn/e/space/?userid=591386&fgka=20160915Vu5Cg.html
http://www.yqcq.gov.cn/e/space/?userid=591390&tfam=20160915Sz7Gb.html
http://www.yqcq.gov.cn/e/space/?userid=591393&tbno=20160915Hw9Ij.html
http://www.yqcq.gov.cn/e/space/?userid=591399&phvw=20160915Xc1Nj.html
http://www.yqcq.gov.cn/e/space/?userid=591403&xbay=20160915Vb6Th.html
http://www.yqcq.gov.cn/e/space/?userid=591405&exrl=20160915Qo9Fy.html
http://www.yqcq.gov.cn/e/space/?userid=591410&ibqn=20160915Du5Mg.html
http://www.yqcq.gov.cn/e/space/?userid=591412&mkwn=20160915Yo2Gp.html
http://www.yqcq.gov.cn/e/space/?userid=591418&zcbi=20160915Eh8Iy.html
http://www.yqcq.gov.cn/e/space/?userid=591422&uqpr=20160915Ca1Je.html
http://www.yqcq.gov.cn/e/space/?userid=591425&xskf=20160915Ar1Aa.html
http://www.yqcq.gov.cn/e/space/?userid=591429&tbyp=20160915Jb9Wd.html
http://www.yqcq.gov.cn/e/space/?userid=591435&xuyb=20160915Qj6Sv.html
http://www.yqcq.gov.cn/e/space/?userid=591438&qpio=20160915Os5Dp.html
http://www.yqcq.gov.cn/e/space/?userid=591444&wqlk=20160915Dc9La.html
http://www.yqcq.gov.cn/e/space/?userid=591449&rsho=20160915We9Wk.html
http://www.yqcq.gov.cn/e/space/?userid=591452&occd=20160915Rq3To.html
http://www.yqcq.gov.cn/e/space/?userid=591457&rjbk=20160915Sh9Ac.html
http://www.yqcq.gov.cn/e/space/?userid=591458&aypr=20160915Xb3He.html
http://www.yqcq.gov.cn/e/space/?userid=591463&xczt=20160915Tp6Tx.html
http://www.yqcq.gov.cn/e/space/?userid=591469&ytdz=20160915Bf3Yw.html
http://www.yqcq.gov.cn/e/space/?userid=591471&isdi=20160915Nt7Ey.html
http://www.yqcq.gov.cn/e/space/?userid=591476&ypjy=20160915Jm1Em.html
http://www.yqcq.gov.cn/e/space/?userid=591480&ostn=20160915Ll8Qr.html
http://www.yqcq.gov.cn/e/space/?userid=591483&lsoq=20160915Md0Cs.html
http://www.yqcq.gov.cn/e/space/?userid=591488&kuhe=20160915Mo3Qw.html
http://www.yqcq.gov.cn/e/space/?userid=591491&rhjk=20160915Uc0Ap.html
http://www.yqcq.gov.cn/e/space/?userid=591497&xseh=20160915Wu4Nm.html
http://www.yqcq.gov.cn/e/space/?userid=591501&iujj=20160915Hn5Ja.html
http://www.yqcq.gov.cn/e/space/?userid=591504&dsby=20160915Eg3Ph.html
http://www.yqcq.gov.cn/e/space/?userid=591508&tjop=20160915Li3En.html
http://www.yqcq.gov.cn/e/space/?userid=591511&tggw=20160915Cw0Xy.html
http://www.yqcq.gov.cn/e/space/?userid=591515&dckd=20160915Kv9Ts.html
http://www.yqcq.gov.cn/e/space/?userid=591521&abvm=20160915Bh1Se.html
http://www.yqcq.gov.cn/e/space/?userid=591523&scix=20160915Rl0Qe.html
http://www.yqcq.gov.cn/e/space/?userid=591528&vdpd=20160915Se1Je.html
http://www.yqcq.gov.cn/e/space/?userid=591531&wcke=20160915Qw6Zb.html
http://www.yqcq.gov.cn/e/space/?userid=591535&jngw=20160915Ef0Et.html
http://www.yqcq.gov.cn/e/space/?userid=591541&psob=20160915Gv1Px.html
http://www.yqcq.gov.cn/e/space/?userid=591542&vwbg=20160915Pg9Tu.html
http://www.yqcq.gov.cn/e/space/?userid=591549&hmcm=20160915Us1Pk.html
http://www.yqcq.gov.cn/e/space/?userid=591551&agft=20160915Wi2Qj.html
http://www.yqcq.gov.cn/e/space/?userid=591556&nkso=20160915Pe2Qe.html
http://www.yqcq.gov.cn/e/space/?userid=591562&stcw=20160915Za9Qk.html
http://www.yqcq.gov.cn/e/space/?userid=591564&zfhb=20160915Ea1Dv.html
http://www.yqcq.gov.cn/e/space/?userid=591569&xzyn=20160915Ra8Nl.html
http://www.yqcq.gov.cn/e/space/?userid=591575&pyuq=20160915Mb8Kv.html
http://www.yqcq.gov.cn/e/space/?userid=591576&fxxm=20160915Jh3Jh.html
http://www.yqcq.gov.cn/e/space/?userid=591582&omww=20160915Gp0Rs.html
http://www.yqcq.gov.cn/e/space/?userid=591585&oijc=20160915Af2Sg.html
http://www.yqcq.gov.cn/e/space/?userid=591589&yxuo=20160915La5Zh.html
http://www.yqcq.gov.cn/e/space/?userid=591594&twpq=20160915Oo6Jg.html
http://www.yqcq.gov.cn/e/space/?userid=591596&auwf=20160915Dq9Kz.html
http://www.yqcq.gov.cn/e/space/?userid=591600&dnaq=20160915Nb7Fh.html
http://www.yqcq.gov.cn/e/space/?userid=591603&exzj=20160915Ga2Le.html
http://www.yqcq.gov.cn/e/space/?userid=591607&hxun=20160915Hg9Ct.html
http://www.yqcq.gov.cn/e/space/?userid=591613&cteu=20160915Sq0Ew.html
http://www.yqcq.gov.cn/e/space/?userid=591615&kdlf=20160915Vy1Tz.html
http://www.yqcq.gov.cn/e/space/?userid=591620&blgx=20160915Zq2Fa.html
http://www.yqcq.gov.cn/e/space/?userid=591623&fjpi=20160915Qv9Xt.html
http://www.yqcq.gov.cn/e/space/?userid=591628&fneq=20160915Je3Kx.html
http://www.yqcq.gov.cn/e/space/?userid=591634&ejko=20160915Lw4Nh.html
http://www.yqcq.gov.cn/e/space/?userid=591636&yrcg=20160915Ly8Aq.html
http://www.yqcq.gov.cn/e/space/?userid=591640&bzms=20160915Pn2Te.html
http://www.yqcq.gov.cn/e/space/?userid=591643&vhia=20160915Zu8Bs.html
http://www.yqcq.gov.cn/e/space/?userid=591647&pijd=20160915Hv2Hz.html
http://www.yqcq.gov.cn/e/space/?userid=591653&qmqi=20160915Kc5Cg.html
http://www.yqcq.gov.cn/e/space/?userid=591654&cgpk=20160915Yx1Yc.html
http://www.yqcq.gov.cn/e/space/?userid=591659&uvdr=20160915Iu5Gp.html
http://www.yqcq.gov.cn/e/space/?userid=591664&hkii=20160915Cq5Ri.html
http://www.yqcq.gov.cn/e/space/?userid=591665&ywwt=20160915Rf8Cs.html
http://www.yqcq.gov.cn/e/space/?userid=591671&uxhj=20160915Ue0Zd.html
http://www.yqcq.gov.cn/e/space/?userid=591672&uftg=20160915Uf8Uj.html
http://www.yqcq.gov.cn/e/space/?userid=591677&ipvu=20160915Xq4Zf.html
http://www.yqcq.gov.cn/e/space/?userid=591682&ryzc=20160915He4Nz.html
http://www.yqcq.gov.cn/e/space/?userid=591683&ofeh=20160915Nf6Zd.html
http://www.yqcq.gov.cn/e/space/?userid=591688&hklh=20160915Ks1Et.html
http://www.yqcq.gov.cn/e/space/?userid=591693&sjbf=20160915Jx8Ld.html
http://www.yqcq.gov.cn/e/space/?userid=591695&xity=20160915Bv8Sn.html
http://www.yqcq.gov.cn/e/space/?userid=591700&hmhr=20160915Fr5Fs.html
http://www.yqcq.gov.cn/e/space/?userid=591703&iauh=20160915Es8Om.html
http://www.yqcq.gov.cn/e/space/?userid=591709&obif=20160915Eu3Kp.html
http://www.yqcq.gov.cn/e/space/?userid=591714&yuxp=20160915Qb7Gy.html
http://www.yqcq.gov.cn/e/space/?userid=591718&faok=20160915Xp2Ii.html
http://www.yqcq.gov.cn/e/space/?userid=591723&gnrv=20160915Ne3Iy.html
http://www.yqcq.gov.cn/e/space/?userid=591728&qcfw=20160915Ci0Cd.html
http://www.yqcq.gov.cn/e/space/?userid=591731&bulm=20160915Aq3Kt.html
http://www.yqcq.gov.cn/e/space/?userid=591736&rovw=20160915Xo5Qa.html
http://www.yqcq.gov.cn/e/space/?userid=591739&zohd=20160915Av5Ls.html
http://www.yqcq.gov.cn/e/space/?userid=591743&avvq=20160915Kt3Li.html
http://www.yqcq.gov.cn/e/space/?userid=591749&lzcp=20160915Aw3Qa.html
http://www.yqcq.gov.cn/e/space/?userid=591750&xvzc=20160915Kq6Nk.html
http://www.yqcq.gov.cn/e/space/?userid=591755&vjxe=20160915Px1Ez.html
http://www.yqcq.gov.cn/e/space/?userid=591760&cnsm=20160915Tq2Ag.html
http://www.yqcq.gov.cn/e/space/?userid=591763&tdsj=20160915Ek3Jl.html
http://www.yqcq.gov.cn/e/space/?userid=591767&zusf=20160915St8Zk.html
http://www.yqcq.gov.cn/e/space/?userid=591773&ctol=20160915Wl3Gn.html
http://www.yqcq.gov.cn/e/space/?userid=591775&kthy=20160915Sd6Hv.html
http://www.yqcq.gov.cn/e/space/?userid=591780&dhvf=20160915Mb7Mt.html
http://www.yqcq.gov.cn/e/space/?userid=591786&muqk=20160915To4Bz.html
http://www.yqcq.gov.cn/e/space/?userid=591788&eftx=20160915Mu4Sz.html
http://www.yqcq.gov.cn/e/space/?userid=591793&uzvi=20160915Kn8Qc.html
http://www.yqcq.gov.cn/e/space/?userid=591795&yzpr=20160915Nt9Nk.html
http://www.yqcq.gov.cn/e/space/?userid=591800&laim=20160915Oe4Tl.html
http://www.yqcq.gov.cn/e/space/?userid=591804&yndt=20160915My7Bd.html
http://www.yqcq.gov.cn/e/space/?userid=591807&saii=20160915Fu2Tu.html
http://www.yqcq.gov.cn/e/space/?userid=591811&ndod=20160915Ud8Bg.html
http://www.yqcq.gov.cn/e/space/?userid=591813&jfwi=20160915Ji0Tx.html
http://www.yqcq.gov.cn/e/space/?userid=591818&dayv=20160915El8Lw.html
http://www.yqcq.gov.cn/e/space/?userid=591823&jjxo=20160915Nd4Zv.html
http://www.yqcq.gov.cn/e/space/?userid=591826&mppw=20160915Xg9Jg.html
http://www.yqcq.gov.cn/e/space/?userid=591830&ztdm=20160915Eg1Op.html
http://www.yqcq.gov.cn/e/space/?userid=591836&bqrf=20160915Hz7Ff.html
http://www.yqcq.gov.cn/e/space/?userid=591837&fqxz=20160915Vu9Qv.html
http://www.yqcq.gov.cn/e/space/?userid=591843&krei=20160915Zg2Cg.html
http://www.yqcq.gov.cn/e/space/?userid=591845&pbgl=20160915Fs3La.html
http://www.yqcq.gov.cn/e/space/?userid=591851&mgug=20160915Ln5Ha.html
http://www.yqcq.gov.cn/e/space/?userid=591856&ifhz=20160915Eq8Mv.html
http://www.yqcq.gov.cn/e/space/?userid=591858&hzuh=20160915Bf7Jq.html
http://www.yqcq.gov.cn/e/space/?userid=591863&cxei=20160915Hz3Vk.html
http://www.yqcq.gov.cn/e/space/?userid=591865&qdbu=20160915Wi7Tu.html
http://www.yqcq.gov.cn/e/space/?userid=591872&sxka=20160915Pt5Kf.html
http://www.yqcq.gov.cn/e/space/?userid=591876&ktfd=20160915Vk6Ur.html
http://www.yqcq.gov.cn/e/space/?userid=591878&tyaz=20160915Xd5Tb.html
http://www.yqcq.gov.cn/e/space/?userid=591883&ygbd=20160915Ei7Go.html
http://www.yqcq.gov.cn/e/space/?userid=591888&lwfk=20160915Tq6Se.html
http://www.yqcq.gov.cn/e/space/?userid=591890&sxas=20160915Ba6Yy.html
http://www.yqcq.gov.cn/e/space/?userid=591895&ddzc=20160915Dm4Vo.html
http://www.yqcq.gov.cn/e/space/?userid=591897&acrx=20160915Vt0Ol.html
http://www.yqcq.gov.cn/e/space/?userid=591902&pqbf=20160915Yf9Aj.html
http://www.yqcq.gov.cn/e/space/?userid=591906&xrfv=20160915Rv4Ml.html
http://www.yqcq.gov.cn/e/space/?userid=591909&rsmy=20160915Fj0Ot.html
http://www.yqcq.gov.cn/e/space/?userid=591913&kokj=20160915Gi1Ab.html
http://www.yqcq.gov.cn/e/space/?userid=591916&uorw=20160915Iz7Su.html
http://www.yqcq.gov.cn/e/space/?userid=591921&edic=20160915Nt0Nu.html
http://www.yqcq.gov.cn/e/space/?userid=591926&utyc=20160915Bq4Fp.html
http://www.yqcq.gov.cn/e/space/?userid=591929&pttg=20160915Rm6Ri.html
http://www.yqcq.gov.cn/e/space/?userid=591933&zdph=20160915Kf4Hc.html
http://www.yqcq.gov.cn/e/space/?userid=591939&ctbz=20160915Mz0Sb.html
http://www.yqcq.gov.cn/e/space/?userid=591940&ojqj=20160915Bq3Uo.html
http://www.yqcq.gov.cn/e/space/?userid=591946&dagp=20160915Tp9Ct.html
http://www.yqcq.gov.cn/e/space/?userid=591951&allm=20160915Fd2Jv.html
http://www.yqcq.gov.cn/e/space/?userid=591953&goqv=20160915Rw7Lu.html
http://www.yqcq.gov.cn/e/space/?userid=591957&idot=20160915Sh0On.html
http://www.yqcq.gov.cn/e/space/?userid=591962&nijj=20160915Dt5In.html
http://www.yqcq.gov.cn/e/space/?userid=591964&bssr=20160915Qq9Uj.html
http://www.yqcq.gov.cn/e/space/?userid=591970&wzjc=20160915Sw3Hq.html
http://www.yqcq.gov.cn/e/space/?userid=591973&inkn=20160915Pm6Um.html
http://www.yqcq.gov.cn/e/space/?userid=591977&norq=20160915Ub1Dd.html
http://www.yqcq.gov.cn/e/space/?userid=591983&snlg=20160915Tl1Zd.html
http://www.yqcq.gov.cn/e/space/?userid=591985&cqsk=20160915Si2Lp.html
http://www.yqcq.gov.cn/e/space/?userid=591990&gdrh=20160915Qt9Mt.html
http://www.yqcq.gov.cn/e/space/?userid=591991&lbaz=20160915Fe0Ae.html
http://www.yqcq.gov.cn/e/space/?userid=591997&blky=20160915Zc2Ok.html
http://www.yqcq.gov.cn/e/space/?userid=592003&oehl=20160915Ga3Cd.html
http://www.yqcq.gov.cn/e/space/?userid=592004&mqet=20160915Ph8Mx.html
http://www.yqcq.gov.cn/e/space/?userid=592010&tulr=20160915Qx2Gy.html
http://www.yqcq.gov.cn/e/space/?userid=592013&tscd=20160915Jh8Zt.html
http://www.yqcq.gov.cn/e/space/?userid=592018&pskw=20160915Sw9Vb.html
http://www.yqcq.gov.cn/e/space/?userid=592024&qfab=20160915Cj5Kc.html
http://www.yqcq.gov.cn/e/space/?userid=592025&sqng=20160915Wt6Xb.html
http://www.yqcq.gov.cn/e/space/?userid=592031&msjn=20160915Hw7Mt.html
http://www.yqcq.gov.cn/e/space/?userid=592036&wkml=20160915Qx4Oe.html
http://www.yqcq.gov.cn/e/space/?userid=592038&tkoq=20160915Xi1Go.html
http://www.yqcq.gov.cn/e/space/?userid=592043&zuyn=20160915Fb9Im.html
http://www.yqcq.gov.cn/e/space/?userid=592046&mmcl=20160915Gf7Ps.html
http://www.yqcq.gov.cn/e/space/?userid=592050&kvvi=20160915Zq4Es.html
http://www.yqcq.gov.cn/e/space/?userid=592056&pyfy=20160915Tk0Of.html
http://www.yqcq.gov.cn/e/space/?userid=592062&dlvl=20160915Hp7Po.html
http://www.yqcq.gov.cn/e/space/?userid=592065&rcqx=20160915Ui5Nx.html
http://www.yqcq.gov.cn/e/space/?userid=592070&sooy=20160915To0Mp.html
http://www.yqcq.gov.cn/e/space/?userid=592076&blem=20160915Za5Wb.html
http://www.yqcq.gov.cn/e/space/?userid=592077&hyqa=20160915Iw6Vu.html
http://www.yqcq.gov.cn/e/space/?userid=592082&hnnv=20160915At9Zf.html
http://www.yqcq.gov.cn/e/space/?userid=592084&vpyt=20160915Vf2Sp.html
http://www.yqcq.gov.cn/e/space/?userid=592090&snad=20160915Rc3Jq.html
http://www.yqcq.gov.cn/e/space/?userid=592094&wghr=20160915Yk1Bt.html
http://www.yqcq.gov.cn/e/space/?userid=592097&qrql=20160915Ve7Vn.html
http://www.yqcq.gov.cn/e/space/?userid=592101&sftp=20160915Yt4Xq.html
http://www.yqcq.gov.cn/e/space/?userid=592104&vneh=20160915Fn7Gq.html
http://www.yqcq.gov.cn/e/space/?userid=592110&lafl=20160915Tv3Lp.html
http://www.yqcq.gov.cn/e/space/?userid=592115&usbd=20160915Tv5Ok.html
http://www.yqcq.gov.cn/e/space/?userid=592117&nvne=20160915Tt7Kd.html
http://www.yqcq.gov.cn/e/space/?userid=592122&nciv=20160915Lw2Jh.html
http://www.yqcq.gov.cn/e/space/?userid=592125&yxqv=20160915Fu8Ma.html
http://www.yqcq.gov.cn/e/space/?userid=592131&ictq=20160915Nw2Hx.html
http://www.yqcq.gov.cn/e/space/?userid=592135&ezip=20160915Oh3Wv.html
http://www.yqcq.gov.cn/e/space/?userid=592138&jjnu=20160915Qi9Ne.html
http://www.yqcq.gov.cn/e/space/?userid=592143&yghq=20160915Nw9Jl.html
http://www.yqcq.gov.cn/e/space/?userid=592149&odtg=20160915Gl9Tt.html
http://www.yqcq.gov.cn/e/space/?userid=592150&osem=20160915Gg8Ku.html
http://www.yqcq.gov.cn/e/space/?userid=592156&xozf=20160915Zg1Vz.html
http://www.yqcq.gov.cn/e/space/?userid=592159&kppq=20160915Tn8Ob.html
http://www.yqcq.gov.cn/e/space/?userid=592164&wrtr=20160915Jh6Zi.html
http://www.yqcq.gov.cn/e/space/?userid=592169&qgqd=20160915Vf5Ta.html
http://www.yqcq.gov.cn/e/space/?userid=592171&svoh=20160915Vr6Ga.html
http://www.yqcq.gov.cn/e/space/?userid=592177&snmw=20160915Xr0Xz.html
http://www.yqcq.gov.cn/e/space/?userid=592178&swkr=20160915Kx7Yz.html
http://www.yqcq.gov.cn/e/space/?userid=592184&vtbb=20160915Ji5Np.html
http://www.yqcq.gov.cn/e/space/?userid=592186&elwa=20160915Ce6Ob.html
http://www.yqcq.gov.cn/e/space/?userid=592192&kodg=20160915Vp6Pv.html
http://www.yqcq.gov.cn/e/space/?userid=592196&sdak=20160915Zp1Cf.html
http://www.yqcq.gov.cn/e/space/?userid=592199&ijzs=20160915Hz8Dz.html
http://www.yqcq.gov.cn/e/space/?userid=592203&rbaj=20160915Rm0Dw.html
http://www.yqcq.gov.cn/e/space/?userid=592206&vtmf=20160915Ty2Kg.html
http://www.yqcq.gov.cn/e/space/?userid=592211&qjkn=20160915Gk1Tz.html
http://www.yqcq.gov.cn/e/space/?userid=592216&evdi=20160915Sd4On.html
http://www.yqcq.gov.cn/e/space/?userid=592219&vvxj=20160915Dy2Vw.html
http://www.yqcq.gov.cn/e/space/?userid=592224&xdty=20160915Gi5Al.html
http://www.yqcq.gov.cn/e/space/?userid=592227&wuhg=20160915Ul1As.html
http://www.yqcq.gov.cn/e/space/?userid=592232&etzd=20160915Bb0Qy.html
http://www.yqcq.gov.cn/e/space/?userid=592237&sjhp=20160915El1Pa.html
http://www.yqcq.gov.cn/e/space/?userid=592240&cixe=20160915Gl7Ns.html
http://www.yqcq.gov.cn/e/space/?userid=592245&reph=20160915My4Ps.html
http://www.yqcq.gov.cn/e/space/?userid=592251&uagg=20160915Nj0Za.html
http://www.yqcq.gov.cn/e/space/?userid=592252&hqyi=20160915Ug4Rp.html
http://www.yqcq.gov.cn/e/space/?userid=592258&fjlm=20160915Cu3Ac.html
http://www.yqcq.gov.cn/e/space/?userid=592260&zoba=20160915Nv2Fm.html
http://www.yqcq.gov.cn/e/space/?userid=592266&qahd=20160915Ec6Gh.html
http://www.yqcq.gov.cn/e/space/?userid=592271&yjve=20160915Mg6Ir.html
http://www.yqcq.gov.cn/e/space/?userid=592273&kgsm=20160915Ti4Vz.html
http://www.yqcq.gov.cn/e/space/?userid=592279&cvrj=20160915Am2Aw.html
http://www.yqcq.gov.cn/e/space/?userid=592281&qhsg=20160915Jy3Lb.html
http://www.yqcq.gov.cn/e/space/?userid=592286&osog=20160915Ie4Ic.html
http://www.yqcq.gov.cn/e/space/?userid=592292&dgjv=20160915Mz4Zk.html
http://www.yqcq.gov.cn/e/space/?userid=592294&qnvj=20160915Em3Vb.html
http://www.yqcq.gov.cn/e/space/?userid=592299&fhrw=20160915Xf9Kl.html
http://www.yqcq.gov.cn/e/space/?userid=592301&qlpz=20160915Ej1Cg.html
http://www.yqcq.gov.cn/e/space/?userid=592306&jjqx=20160915Ov0Zk.html
http://www.yqcq.gov.cn/e/space/?userid=592311&jqlc=20160915Mx1Rh.html
http://www.yqcq.gov.cn/e/space/?userid=592314&sssx=20160915Hr4Ax.html
http://www.yqcq.gov.cn/e/space/?userid=592320&rlbu=20160915Nm0Bd.html
http://www.yqcq.gov.cn/e/space/?userid=592325&wsxj=20160915Fn6Ib.html
http://www.yqcq.gov.cn/e/space/?userid=592327&gags=20160915Qu1Tc.html
http://www.yqcq.gov.cn/e/space/?userid=592332&wojx=20160915Eo1Tz.html
http://www.yqcq.gov.cn/e/space/?userid=592335&kzum=20160915Nh8Ko.html
http://www.yqcq.gov.cn/e/space/?userid=592340&etrk=20160915Qn3Vs.html
http://www.yqcq.gov.cn/e/space/?userid=592345&rilm=20160915Ml6Jh.html
http://www.yqcq.gov.cn/e/space/?userid=592347&zlxe=20160915Ze1Jy.html
http://www.yqcq.gov.cn/e/space/?userid=592353&aezx=20160915Gl0Ab.html
http://www.yqcq.gov.cn/e/space/?userid=592356&soex=20160915Hv8Jy.html
http://www.yqcq.gov.cn/e/space/?userid=592360&xfxi=20160915Bh5Dq.html
http://www.yqcq.gov.cn/e/space/?userid=592366&yldb=20160915Us2Zu.html
http://www.yqcq.gov.cn/e/space/?userid=592367&lwnc=20160915Xe8Je.html
http://www.yqcq.gov.cn/e/space/?userid=592373&fanr=20160915Li7Wu.html
http://www.yqcq.gov.cn/e/space/?userid=592375&zebp=20160915Go6Ja.html
http://www.yqcq.gov.cn/e/space/?userid=592381&wify=20160915Ck0Ek.html
http://www.yqcq.gov.cn/e/space/?userid=592387&yhqo=20160915Uv5Wv.html
http://www.yqcq.gov.cn/e/space/?userid=592388&jhpc=20160915Df1Gg.html
http://www.yqcq.gov.cn/e/space/?userid=592394&hnhg=20160915Qm8Pl.html
http://www.yqcq.gov.cn/e/space/?userid=592399&nayv=20160915Ex8Gq.html
http://www.yqcq.gov.cn/e/space/?userid=592402&mmlp=20160915Xz1La.html
http://www.yqcq.gov.cn/e/space/?userid=592406&ftfr=20160915Ma0Go.html
http://www.yqcq.gov.cn/e/space/?userid=592408&xumq=20160915Ax3Um.html
http://www.yqcq.gov.cn/e/space/?userid=592413&mpqc=20160915Dw2Qo.html
http://www.yqcq.gov.cn/e/space/?userid=592419&anpg=20160915Ws6Hp.html
http://www.yqcq.gov.cn/e/space/?userid=592420&shsk=20160915Dh3Da.html
http://www.yqcq.gov.cn/e/space/?userid=592426&ardc=20160915Xy6Tc.html
http://www.yqcq.gov.cn/e/space/?userid=592428&fjpy=20160915Yd2Ji.html
http://www.yqcq.gov.cn/e/space/?userid=592433&xndl=20160915Sb5Pg.html
http://www.yqcq.gov.cn/e/space/?userid=592439&lgvk=20160915Sp3Ul.html
http://www.yqcq.gov.cn/e/space/?userid=592440&jnfg=20160915Ax5Dj.html
http://www.yqcq.gov.cn/e/space/?userid=592446&dwbw=20160915Pu1Sb.html
http://www.yqcq.gov.cn/e/space/?userid=592447&afvy=20160915Oa5Mg.html
http://www.yqcq.gov.cn/e/space/?userid=592453&znxk=20160915Ib0Bg.html
http://www.yqcq.gov.cn/e/space/?userid=592457&xtar=20160915Jj9Sy.html
http://www.yqcq.gov.cn/e/space/?userid=592459&zytn=20160915Ck0Ak.html
http://www.yqcq.gov.cn/e/space/?userid=592464&ivav=20160915Ba9Xj.html
http://www.yqcq.gov.cn/e/space/?userid=592470&txbz=20160915Dp3Gw.html
http://www.yqcq.gov.cn/e/space/?userid=592473&ojcg=20160915Cu6Lj.html
http://www.yqcq.gov.cn/e/space/?userid=592477&ndgh=20160915Ue3Xk.html
http://www.yqcq.gov.cn/e/space/?userid=592483&ttau=20160915Mv6El.html
http://www.yqcq.gov.cn/e/space/?userid=592485&utku=20160915Pz4Uo.html
http://www.yqcq.gov.cn/e/space/?userid=592491&sxcy=20160915Zc7Aj.html
http://www.yqcq.gov.cn/e/space/?userid=592493&ozvp=20160915Do0Og.html
http://www.yqcq.gov.cn/e/space/?userid=592498&iwfg=20160915Qa1Aq.html
http://www.yqcq.gov.cn/e/space/?userid=592504&icrt=20160915Gm4Jl.html
http://www.yqcq.gov.cn/e/space/?userid=592506&dwzp=20160915Jt8Oe.html
http://www.yqcq.gov.cn/e/space/?userid=592511&tmtf=20160915Mt7Cu.html
http://www.yqcq.gov.cn/e/space/?userid=592513&wxcf=20160915Hx9Dw.html
http://www.yqcq.gov.cn/e/space/?userid=592519&hjgd=20160915Um6Bo.html
http://www.yqcq.gov.cn/e/space/?userid=592524&vjpa=20160915Ln5Nn.html
http://www.yqcq.gov.cn/e/space/?userid=592526&dlof=20160915Ep9Hq.html
http://www.yqcq.gov.cn/e/space/?userid=592531&sgxn=20160915Td6Yc.html
http://www.yqcq.gov.cn/e/space/?userid=592533&nrab=20160915Pw0Md.html
http://www.yqcq.gov.cn/e/space/?userid=592539&fscb=20160915Mk1Ji.html
http://www.yqcq.gov.cn/e/space/?userid=592545&asic=20160915Om7Tv.html
http://www.yqcq.gov.cn/e/space/?userid=592546&rntz=20160915Ku5Qb.html
http://www.yqcq.gov.cn/e/space/?userid=592552&zxdt=20160915Sr8Gw.html
http://www.yqcq.gov.cn/e/space/?userid=592557&wbqb=20160915Iu0Pm.html
http://www.yqcq.gov.cn/e/space/?userid=592559&gely=20160915Iw6Hj.html
http://www.yqcq.gov.cn/e/space/?userid=592565&fvpr=20160915Hp8En.html
http://www.yqcq.gov.cn/e/space/?userid=592566&bmpo=20160915Xi1Pa.html
http://www.yqcq.gov.cn/e/space/?userid=592572&hgps=20160915Ct7Ix.html
http://www.yqcq.gov.cn/e/space/?userid=592576&qpwn=20160915Nz3Zh.html
http://www.yqcq.gov.cn/e/space/?userid=592579&rvqx=20160915Iz2Tp.html
http://www.yqcq.gov.cn/e/space/?userid=592584&epjt=20160915Ry2Ya.html
http://www.yqcq.gov.cn/e/space/?userid=592587&urfx=20160915Lt2Jk.html
http://www.yqcq.gov.cn/e/space/?userid=592593&hhlo=20160915Tl3St.html
http://www.yqcq.gov.cn/e/space/?userid=592598&dbso=20160915Jz5Bd.html
http://www.yqcq.gov.cn/e/space/?userid=592601&ctuo=20160915Lo5Rr.html
http://www.yqcq.gov.cn/e/space/?userid=592606&xysu=20160915Ru0Jb.html
http://www.yqcq.gov.cn/e/space/?userid=592612&saer=20160915Mz8Wr.html
http://www.yqcq.gov.cn/e/space/?userid=592614&jmkj=20160915Zb2Bf.html
http://www.yqcq.gov.cn/e/space/?userid=592619&pshk=20160915Sc7Uy.html
http://www.yqcq.gov.cn/e/space/?userid=592622&tnco=20160915Xi3Lp.html
http://www.yqcq.gov.cn/e/space/?userid=592627&cflu=20160915Vt0Mm.html
http://www.yqcq.gov.cn/e/space/?userid=592632&uwfa=20160915Uf8Bi.html
http://www.yqcq.gov.cn/e/space/?userid=592634&wulw=20160915Gp7Qz.html
http://www.yqcq.gov.cn/e/space/?userid=592639&nfjo=20160915Tr6Td.html
http://www.yqcq.gov.cn/e/space/?userid=592641&jiwc=20160915Le8Do.html
http://www.yqcq.gov.cn/e/space/?userid=592647&lali=20160915Ck6Gy.html
http://www.yqcq.gov.cn/e/space/?userid=592653&reql=20160915Qf2Rw.html
http://www.yqcq.gov.cn/e/space/?userid=592656&bcyc=20160915Qt0Yn.html
http://www.yqcq.gov.cn/e/space/?userid=592661&tinj=20160915At9Et.html
http://www.yqcq.gov.cn/e/space/?userid=592666&svoq=20160915Cr3Js.html
http://www.yqcq.gov.cn/e/space/?userid=592669&mpyu=20160915Aq0Tq.html
http://www.yqcq.gov.cn/e/space/?userid=592674&wzkc=20160915Be3Ts.html
http://www.yqcq.gov.cn/e/space/?userid=592680&nbkv=20160915Ts2Ey.html
http://www.yqcq.gov.cn/e/space/?userid=592683&ggdd=20160915Uj8Tb.html
http://www.yqcq.gov.cn/e/space/?userid=592687&bccb=20160915Rh9Oy.html
http://www.yqcq.gov.cn/e/space/?userid=592693&muhg=20160915Ac1Um.html
http://www.yqcq.gov.cn/e/space/?userid=592694&qovi=20160915Av8Xb.html
http://www.yqcq.gov.cn/e/space/?userid=592700&qyrm=20160915Aj3Bp.html
http://www.yqcq.gov.cn/e/space/?userid=592701&zzuw=20160915Rr0Gu.html
http://www.yqcq.gov.cn/e/space/?userid=592707&xdnu=20160915Ov4Py.html
http://www.yqcq.gov.cn/e/space/?userid=592714&xjci=20160915Wb0Oi.html
http://www.yqcq.gov.cn/e/space/?userid=592715&joeu=20160915Pi3Pu.html
http://www.yqcq.gov.cn/e/space/?userid=592720&hxlp=20160915Em6Or.html
http://www.yqcq.gov.cn/e/space/?userid=592722&xfby=20160915Wj6Qg.html
http://www.yqcq.gov.cn/e/space/?userid=592728&vccq=20160915Xd7Wk.html
http://www.yqcq.gov.cn/e/space/?userid=592733&yxsz=20160915Gl0Ad.html
http://www.yqcq.gov.cn/e/space/?userid=592735&pykv=20160915Fu3Ga.html
http://www.yqcq.gov.cn/e/space/?userid=592741&ezeg=20160915Np6Jr.html
http://www.yqcq.gov.cn/e/space/?userid=592746&opjq=20160915Av4An.html
http://www.yqcq.gov.cn/e/space/?userid=592748&gvxu=20160915Vd9Vp.html
http://www.yqcq.gov.cn/e/space/?userid=592754&xrqw=20160915Wo8Oi.html
http://www.yqcq.gov.cn/e/space/?userid=592756&pvvv=20160915Rs1Rb.html
http://www.yqcq.gov.cn/e/space/?userid=592761&knqy=20160915Hw4Vp.html
http://www.yqcq.gov.cn/e/space/?userid=592766&gmyy=20160915Lt4Gk.html
http://www.yqcq.gov.cn/e/space/?userid=592769&zksw=20160915Oj6Gh.html
http://www.yqcq.gov.cn/e/space/?userid=592774&oxjb=20160915Cs5Ah.html
http://www.yqcq.gov.cn/e/space/?userid=592776&kogf=20160915Zg5Cn.html
http://www.yqcq.gov.cn/e/space/?userid=592782&jdmb=20160915Hy8Ah.html
http://www.yqcq.gov.cn/e/space/?userid=592787&tzfm=20160915Xd1Ig.html
http://www.yqcq.gov.cn/e/space/?userid=592788&pkge=20160915Lq1Ej.html
http://www.yqcq.gov.cn/e/space/?userid=592794&jxln=20160915Id7Vl.html
http://www.yqcq.gov.cn/e/space/?userid=592798&nlwi=20160915Cd2Ee.html
http://www.yqcq.gov.cn/e/space/?userid=592801&wfua=20160915Qy5Rs.html
http://www.yqcq.gov.cn/e/space/?userid=592806&cpkl=20160915Jp1Gb.html
http://www.yqcq.gov.cn/e/space/?userid=592811&seqg=20160915Ia9Zs.html
http://www.yqcq.gov.cn/e/space/?userid=592812&lxxn=20160915Kj3Ot.html
http://www.yqcq.gov.cn/e/space/?userid=592816&rcmm=20160915Pb3Hf.html
http://www.yqcq.gov.cn/e/space/?userid=592819&zege=20160915Pz5Yq.html
http://www.yqcq.gov.cn/e/space/?userid=592824&rpuz=20160915Wa6Zw.html
http://www.yqcq.gov.cn/e/space/?userid=592829&vseo=20160915Zf2Bi.html
http://www.yqcq.gov.cn/e/space/?userid=592831&arwk=20160915Yk2Ik.html
http://www.yqcq.gov.cn/e/space/?userid=592837&mnwz=20160915Mz1Ex.html
http://www.yqcq.gov.cn/e/space/?userid=592841&fqse=20160915Jw9Xp.html
http://www.yqcq.gov.cn/e/space/?userid=592844&jppx=20160915Vj0Oz.html
http://www.yqcq.gov.cn/e/space/?userid=592850&dzzl=20160915St8Wd.html
http://www.yqcq.gov.cn/e/space/?userid=592851&bhdk=20160915Gb9Ef.html
http://www.yqcq.gov.cn/e/space/?userid=592857&dbdt=20160915Gs3Go.html
http://www.yqcq.gov.cn/e/space/?userid=592861&rvag=20160915Xz4Qn.html
http://www.yqcq.gov.cn/e/space/?userid=592864&ulba=20160915Xp0Pz.html
http://www.yqcq.gov.cn/e/space/?userid=592868&rykf=20160915Xg7Uh.html
http://www.yqcq.gov.cn/e/space/?userid=592870&jgvn=20160915Go3Tu.html
http://www.yqcq.gov.cn/e/space/?userid=592875&baab=20160915Wg0Ie.html
http://www.yqcq.gov.cn/e/space/?userid=592880&pxrs=20160915Xt7Kj.html
http://www.yqcq.gov.cn/e/space/?userid=592882&uexh=20160915Iu5Zl.html
http://www.yqcq.gov.cn/e/space/?userid=592888&otjc=20160915Nb9Zs.html
http://www.yqcq.gov.cn/e/space/?userid=592893&avcr=20160915Ke9Um.html
http://www.yqcq.gov.cn/e/space/?userid=592896&lerm=20160915Mf5Td.html
http://www.yqcq.gov.cn/e/space/?userid=592901&wqzg=20160915Qs1Qs.html
http://www.yqcq.gov.cn/e/space/?userid=592904&csyn=20160915Mv5Pn.html
http://www.yqcq.gov.cn/e/space/?userid=592909&aefl=20160915Rd5At.html
http://www.yqcq.gov.cn/e/space/?userid=592914&fkvk=20160915Ez9Go.html
http://www.yqcq.gov.cn/e/space/?userid=592916&prds=20160915Oy3Vn.html
http://www.yqcq.gov.cn/e/space/?userid=592922&yxat=20160915Wj9Uv.html
http://www.yqcq.gov.cn/e/space/?userid=592923&mqfc=20160915Fe7Mz.html
http://www.yqcq.gov.cn/e/space/?userid=592929&lkug=20160915Hg4Mr.html
http://www.yqcq.gov.cn/e/space/?userid=592934&dhhx=20160915Le6Ml.html
http://www.yqcq.gov.cn/e/space/?userid=592936&lkot=20160915Ka6Oi.html
http://www.yqcq.gov.cn/e/space/?userid=592941&pqkl=20160915Ul1Lk.html
http://www.yqcq.gov.cn/e/space/?userid=592943&bnle=20160915Tb7Jz.html
http://www.yqcq.gov.cn/e/space/?userid=592949&gpft=20160915Rg2Jf.html
http://www.yqcq.gov.cn/e/space/?userid=592953&ztix=20160915Vw9Gg.html
http://www.yqcq.gov.cn/e/space/?userid=592955&gsms=20160915Ju4Pi.html
http://www.yqcq.gov.cn/e/space/?userid=592960&jwbj=20160915Oe3Tu.html
http://www.yqcq.gov.cn/e/space/?userid=592963&gmqf=20160915Kx4Cu.html
http://www.yqcq.gov.cn/e/space/?userid=592967&dmut=20160915Qp2Bi.html
http://www.yqcq.gov.cn/e/space/?userid=592973&nchk=20160915Di3Cu.html
http://www.yqcq.gov.cn/e/space/?userid=592974&mult=20160915Db8Sc.html
http://www.yqcq.gov.cn/e/space/?userid=592980&ebld=20160915Fv6Sz.html
http://www.yqcq.gov.cn/e/space/?userid=592982&wzuf=20160915Ma1Ps.html
http://www.yqcq.gov.cn/e/space/?userid=592988&dduj=20160915Sp5Re.html
http://www.yqcq.gov.cn/e/space/?userid=592992&tmyx=20160915Sr0Wc.html
http://www.yqcq.gov.cn/e/space/?userid=592995&wtzh=20160915Vh3Jq.html
http://www.yqcq.gov.cn/e/space/?userid=592999&tcwg=20160915Di9Lg.html
http://www.yqcq.gov.cn/e/space/?userid=593005&yyjq=20160915Wc5Bu.html
http://www.yqcq.gov.cn/e/space/?userid=593006&jlxb=20160915Tz3Ej.html
http://www.yqcq.gov.cn/e/space/?userid=593010&onwe=20160915Np3Lm.html
http://www.yqcq.gov.cn/e/space/?userid=593014&cpsm=20160915Wn4Ar.html
http://www.yqcq.gov.cn/e/space/?userid=593015&edkz=20160915Fd4Da.html
http://www.yqcq.gov.cn/e/space/?userid=593020&kuci=20160915Mt8Ik.html
http://www.yqcq.gov.cn/e/space/?userid=593025&obuu=20160915Bb4Wb.html
http://www.yqcq.gov.cn/e/space/?userid=593027&mvet=20160915Im6Li.html
http://www.yqcq.gov.cn/e/space/?userid=593032&uymw=20160915Tx1Qo.html
http://www.yqcq.gov.cn/e/space/?userid=593034&hkib=20160915Xr1Qo.html
http://www.yqcq.gov.cn/e/space/?userid=593041&qfea=20160915Gl2Ph.html
http://www.yqcq.gov.cn/e/space/?userid=593045&cjxh=20160915Qf8Jl.html
http://www.yqcq.gov.cn/e/space/?userid=593048&jwbo=20160915Xk6Or.html
http://www.yqcq.gov.cn/e/space/?userid=593054&tuto=20160915Fm5Ad.html
http://www.yqcq.gov.cn/e/space/?userid=593055&njzj=20160915Vh3Vw.html
http://www.yqcq.gov.cn/e/space/?userid=593061&uppz=20160915Rm3Rm.html
http://www.yqcq.gov.cn/e/space/?userid=593066&nibi=20160915Av2Qf.html
http://www.yqcq.gov.cn/e/space/?userid=593068&yrwp=20160915Xi9Id.html
http://www.yqcq.gov.cn/e/space/?userid=593073&xuae=20160915Gz4By.html
http://www.yqcq.gov.cn/e/space/?userid=593077&wclt=20160915Zo7Tj.html
http://www.yqcq.gov.cn/e/space/?userid=593080&osjg=20160915Gb3Fl.html
http://www.yqcq.gov.cn/e/space/?userid=593084&sedx=20160915Cy5Tx.html
http://www.yqcq.gov.cn/e/space/?userid=593087&ubrs=20160915Sl9Jq.html
http://www.yqcq.gov.cn/e/space/?userid=593091&tbzr=20160915Vm8Ky.html
http://www.yqcq.gov.cn/e/space/?userid=593094&lhap=20160915Bx5Qs.html
http://www.yqcq.gov.cn/e/space/?userid=593099&citj=20160915Qt4Rm.html
http://www.yqcq.gov.cn/e/space/?userid=593104&ktwj=20160915Tx3Mg.html
http://www.yqcq.gov.cn/e/space/?userid=593106&qqca=20160915Zp9Ho.html
http://www.yqcq.gov.cn/e/space/?userid=593112&axsu=20160915Nw1Za.html
http://www.yqcq.gov.cn/e/space/?userid=593117&qana=20160915Hc9St.html
http://www.yqcq.gov.cn/e/space/?userid=593119&bwoa=20160915Yd8Qr.html
http://www.yqcq.gov.cn/e/space/?userid=593123&iqwm=20160915Sj6Wq.html
http://www.yqcq.gov.cn/e/space/?userid=593129&oalo=20160915Ie7Cr.html
http://www.yqcq.gov.cn/e/space/?userid=593132&slua=20160915Gi2Mz.html
http://www.yqcq.gov.cn/e/space/?userid=593137&lqal=20160915Mh1Qw.html
http://www.yqcq.gov.cn/e/space/?userid=593139&kxpd=20160915Vu9Ao.html
http://www.yqcq.gov.cn/e/space/?userid=593144&kfkn=20160915Hg9Di.html
http://www.yqcq.gov.cn/e/space/?userid=593150&hcxv=20160915Oi3Hk.html
http://www.yqcq.gov.cn/e/space/?userid=593151&qqzo=20160915Pf8Mc.html
http://www.yqcq.gov.cn/e/space/?userid=593157&uajd=20160915Pz9Ik.html
http://www.yqcq.gov.cn/e/space/?userid=593159&brpk=20160915Pw3Jy.html
http://www.yqcq.gov.cn/e/space/?userid=593164&rwwx=20160915Jq7Mk.html
http://www.yqcq.gov.cn/e/space/?userid=593169&zcpy=20160915Ux3Uc.html
http://www.yqcq.gov.cn/e/space/?userid=593170&cvmf=20160915Kg0Ra.html
http://www.yqcq.gov.cn/e/space/?userid=593176&nbuv=20160915It3Kl.html
http://www.yqcq.gov.cn/e/space/?userid=593180&ezuv=20160915Yc9Xk.html
http://www.yqcq.gov.cn/e/space/?userid=593182&couv=20160915Wb6Fk.html
http://www.yqcq.gov.cn/e/space/?userid=593187&pduv=20160915Ni8Ik.html
http://www.yqcq.gov.cn/e/space/?userid=593188&ndiy=20160915Ym2Xa.html
http://www.yqcq.gov.cn/e/space/?userid=593193&mmnq=20160915Bv6Cb.html
http://www.yqcq.gov.cn/e/space/?userid=593197&crrl=20160915Yp9Ix.html
http://www.yqcq.gov.cn/e/space/?userid=593199&yudn=20160915As0Yz.html
http://www.yqcq.gov.cn/e/space/?userid=593203&vhip=20160915Mg1Sf.html
http://www.yqcq.gov.cn/e/space/?userid=593205&gnix=20160915Sw2Pc.html
http://www.yqcq.gov.cn/e/space/?userid=593211&wohs=20160915Gr6Po.html
http://www.yqcq.gov.cn/e/space/?userid=593215&ythy=20160915Ga3Iw.html
http://www.yqcq.gov.cn/e/space/?userid=593218&xqvh=20160915Ig7Uy.html
http://www.yqcq.gov.cn/e/space/?userid=593222&vvrj=20160915Nx6Ax.html
http://www.yqcq.gov.cn/e/space/?userid=593228&rvpk=20160915Ni9Dk.html
http://www.yqcq.gov.cn/e/space/?userid=593230&euue=20160915Eg3Kh.html
http://www.yqcq.gov.cn/e/space/?userid=593236&abyn=20160915Sb6Ky.html
http://www.yqcq.gov.cn/e/space/?userid=593239&yzze=20160915Kw9An.html
http://www.yqcq.gov.cn/e/space/?userid=593244&aghq=20160915Ed0Zo.html
http://www.yqcq.gov.cn/e/space/?userid=593249&kodx=20160915Tf0Ko.html
http://www.yqcq.gov.cn/e/space/?userid=593251&hoaw=20160915Iw5Yr.html
http://www.yqcq.gov.cn/e/space/?userid=593256&chdv=20160915Qu8Fl.html
http://www.yqcq.gov.cn/e/space/?userid=593259&rwpg=20160915Xg5Xz.html
http://www.yqcq.gov.cn/e/space/?userid=593264&abur=20160915Is1Kf.html
http://www.yqcq.gov.cn/e/space/?userid=593269&erld=20160915Ju9Hw.html
http://www.yqcq.gov.cn/e/space/?userid=593272&yued=20160915Va8Fl.html
http://www.yqcq.gov.cn/e/space/?userid=593276&pioc=20160915Yq1Jo.html
http://www.yqcq.gov.cn/e/space/?userid=593279&rlvb=20160915Zx0Tg.html
http://www.yqcq.gov.cn/e/space/?userid=593284&fnbl=20160915Sq7Cl.html
http://www.yqcq.gov.cn/e/space/?userid=593290&huhk=20160915Cg2He.html
http://www.yqcq.gov.cn/e/space/?userid=593292&kart=20160915Wu8Jb.html
http://www.yqcq.gov.cn/e/space/?userid=593297&qacb=20160915Mb5Ds.html
http://www.yqcq.gov.cn/e/space/?userid=593302&hbwz=20160915Gn8Qx.html
http://www.yqcq.gov.cn/e/space/?userid=593304&oonv=20160915Sa3Ju.html
http://www.yqcq.gov.cn/e/space/?userid=593310&uwnt=20160915My4Il.html
http://www.yqcq.gov.cn/e/space/?userid=593311&febb=20160915Is1Rm.html
http://www.yqcq.gov.cn/e/space/?userid=593316&qzpz=20160915Zj9Cc.html
http://www.yqcq.gov.cn/e/space/?userid=593320&cwpr=20160915Zi0Xa.html
http://www.yqcq.gov.cn/e/space/?userid=593323&tjij=20160915Bh3Ev.html
http://www.yqcq.gov.cn/e/space/?userid=593328&nxcw=20160915Zk4Eg.html
http://www.yqcq.gov.cn/e/space/?userid=593331&lhzn=20160915Wb5Xe.html
http://www.yqcq.gov.cn/e/space/?userid=593337&mvub=20160915Rf8Lh.html
http://www.yqcq.gov.cn/e/space/?userid=593341&lisk=20160915Ub7Vo.html
http://www.yqcq.gov.cn/e/space/?userid=593344&zsro=20160915Qt6Oy.html
http://www.yqcq.gov.cn/e/space/?userid=593349&xkwf=20160915Cl7Hk.html
http://www.yqcq.gov.cn/e/space/?userid=593354&dxtq=20160915Po2Pj.html
http://www.yqcq.gov.cn/e/space/?userid=593356&fxik=20160915Tn6Cn.html
http://www.yqcq.gov.cn/e/space/?userid=593361&qquh=20160915Bx4As.html
http://www.yqcq.gov.cn/e/space/?userid=593364&ntwa=20160915Fu8Ac.html
http://www.yqcq.gov.cn/e/space/?userid=593370&ssmc=20160915Qr5Iz.html
http://www.yqcq.gov.cn/e/space/?userid=593374&tovb=20160915Cn4Ax.html
http://www.yqcq.gov.cn/e/space/?userid=593376&orrv=20160915Ha9Lj.html
http://www.yqcq.gov.cn/e/space/?userid=593381&vjua=20160915Rb3Dr.html
http://www.yqcq.gov.cn/e/space/?userid=593384&rdop=20160915Lb4Oc.html
http://www.yqcq.gov.cn/e/space/?userid=593390&cene=20160915Ai1Gx.html
http://www.yqcq.gov.cn/e/space/?userid=593394&qxod=20160915Un9Ea.html
http://www.yqcq.gov.cn/e/space/?userid=593396&sqym=20160915Rr3Rg.html
http://www.yqcq.gov.cn/e/space/?userid=593402&msmk=20160915En8Fl.html
http://www.yqcq.gov.cn/e/space/?userid=593404&yvbh=20160915Ak5Xl.html
http://www.yqcq.gov.cn/e/space/?userid=593409&tmgl=20160915Eu2Qy.html
http://www.yqcq.gov.cn/e/space/?userid=593414&qizt=20160915Pv2Xx.html
http://www.yqcq.gov.cn/e/space/?userid=593416&ddlc=20160915Rw2Zk.html
http://www.yqcq.gov.cn/e/space/?userid=593422&whia=20160915Te8Ak.html
http://www.yqcq.gov.cn/e/space/?userid=593427&zsjp=20160915Is3Bz.html
http://www.yqcq.gov.cn/e/space/?userid=593429&dsrk=20160915Dz3Qg.html
http://www.yqcq.gov.cn/e/space/?userid=593433&jntc=20160915Iz9Yg.html
http://www.yqcq.gov.cn/e/space/?userid=593436&drgd=20160915Sk2Mz.html
http://www.yqcq.gov.cn/e/space/?userid=593442&rtmp=20160915Ne8Ag.html
http://www.yqcq.gov.cn/e/space/?userid=593446&gsax=20160915Gs8Iq.html
http://www.yqcq.gov.cn/e/space/?userid=593449&qdzx=20160915Zl8Zq.html
http://www.yqcq.gov.cn/e/space/?userid=593453&beyn=20160915Ft4Xr.html
http://www.yqcq.gov.cn/e/space/?userid=593456&xfik=20160915Qg9My.html
http://www.yqcq.gov.cn/e/space/?userid=593461&chvl=20160915Mq1Yg.html
http://www.yqcq.gov.cn/e/space/?userid=593466&ukqg=20160915Va9Gu.html
http://www.yqcq.gov.cn/e/space/?userid=593469&bmwu=20160915Mr2Zz.html
http://www.yqcq.gov.cn/e/space/?userid=593474>fu=20160915Ce9Oz.html
http://www.yqcq.gov.cn/e/space/?userid=593479&xcob=20160915Vq3Hy.html
http://www.yqcq.gov.cn/e/space/?userid=593481&uelr=20160915Ca3Re.html
http://www.yqcq.gov.cn/e/space/?userid=593486&dtgz=20160915Ki4Fp.html
http://www.yqcq.gov.cn/e/space/?userid=593488&bedj=20160915Rt3Vp.html
http://www.yqcq.gov.cn/e/space/?userid=593492&qxgh=20160915Ss5Bj.html
http://www.yqcq.gov.cn/e/space/?userid=593497&mtok=20160915Ym1Gf.html
http://www.yqcq.gov.cn/e/space/?userid=593500&igkv=20160915Ua6Le.html
http://www.yqcq.gov.cn/e/space/?userid=593504&wmeg=20160915Za5Tx.html
http://www.yqcq.gov.cn/e/space/?userid=593507&xyxb=20160915Nb0Dp.html
http://www.yqcq.gov.cn/e/space/?userid=593511&gael=20160915Wv4Vg.html
http://www.yqcq.gov.cn/e/space/?userid=593516&qisd=20160915Mx7Hr.html
http://www.yqcq.gov.cn/e/space/?userid=593518&edgl=20160915Pj5Tf.html
http://www.yqcq.gov.cn/e/space/?userid=593522&nira=20160915Qf3Mq.html
http://www.yqcq.gov.cn/e/space/?userid=593527&jyab=20160915Fw2Rk.html
http://www.yqcq.gov.cn/e/space/?userid=593528&hnuu=20160915Dr2Zd.html
http://www.yqcq.gov.cn/e/space/?userid=593533&izzy=20160915Fv9Mh.html
http://www.yqcq.gov.cn/e/space/?userid=593539&iaba=20160915Yj0Hh.html
http://www.yqcq.gov.cn/e/space/?userid=593540&kket=20160915Ou9Um.html
http://www.yqcq.gov.cn/e/space/?userid=593546&ozmh=20160915Af0Sr.html
http://www.yqcq.gov.cn/e/space/?userid=593548&lazb=20160915Pn0Ho.html
http://www.yqcq.gov.cn/e/space/?userid=593553&soze=20160915Db8Qi.html
http://www.yqcq.gov.cn/e/space/?userid=593558&jdxc=20160915Ck2Os.html
http://www.yqcq.gov.cn/e/space/?userid=593560&zzum=20160915Uo8Zu.html
http://www.yqcq.gov.cn/e/space/?userid=593564&dszl=20160915So1Fc.html
http://www.yqcq.gov.cn/e/space/?userid=593567&emqs=20160915Hm5Ce.html
http://www.yqcq.gov.cn/e/space/?userid=593573&xwle=20160915Nq2We.html
http://www.yqcq.gov.cn/e/space/?userid=593577&nmef=20160915Zu6Ox.html
http://www.yqcq.gov.cn/e/space/?userid=593579&sevu=20160915Qt7Af.html
http://www.yqcq.gov.cn/e/space/?userid=593584&ebqj=20160915Di8Ip.html
http://www.yqcq.gov.cn/e/space/?userid=593587&rwuz=20160915Kr7Of.html
http://www.yqcq.gov.cn/e/space/?userid=593592&yyrj=20160915Cr4Sp.html
http://www.yqcq.gov.cn/e/space/?userid=593597&iowa=20160915Ov9Jb.html
http://www.yqcq.gov.cn/e/space/?userid=593599&nozh=20160915Zn9Qm.html
http://www.yqcq.gov.cn/e/space/?userid=593604&ghzg=20160915Nj2No.html
http://www.yqcq.gov.cn/e/space/?userid=593608&lhyq=20160915Ml0Nk.html
http://www.yqcq.gov.cn/e/space/?userid=593611&tfos=20160915Cy6Hb.html
http://www.yqcq.gov.cn/e/space/?userid=593617&hzmm=20160915Bi9Pr.html
http://www.yqcq.gov.cn/e/space/?userid=593618&ijbu=20160915Kl8Qc.html
http://www.yqcq.gov.cn/e/space/?userid=593624&lyzw=20160915Vk5Er.html
http://www.yqcq.gov.cn/e/space/?userid=593629&fzqc=20160915Hj6Sy.html
http://www.yqcq.gov.cn/e/space/?userid=593631&xfla=20160915Qu7Kq.html
http://www.yqcq.gov.cn/e/space/?userid=593637&xfdx=20160915Vu3Ee.html
http://www.yqcq.gov.cn/e/space/?userid=593639&drbb=20160915Qk9Sz.html
http://www.yqcq.gov.cn/e/space/?userid=593643&ipoy=20160915Eu5Xf.html
http://www.yqcq.gov.cn/e/space/?userid=593645&qgbl=20160915Ri0Wy.html
http://www.yqcq.gov.cn/e/space/?userid=593649&jywa=20160915Sj8Cq.html
http://www.yqcq.gov.cn/e/space/?userid=593654&vspt=20160915Pv6Br.html
http://www.yqcq.gov.cn/e/space/?userid=593656&srqz=20160915Oe6Al.html
http://www.yqcq.gov.cn/e/space/?userid=593662&bbsa=20160915Qo3Cb.html
http://www.yqcq.gov.cn/e/space/?userid=593667&prre=20160915Ab9Gy.html
http://www.yqcq.gov.cn/e/space/?userid=593669&aubm=20160915Ba4Lc.html
http://www.yqcq.gov.cn/e/space/?userid=593675&pkqd=20160915Ig6Dj.html
http://www.yqcq.gov.cn/e/space/?userid=593677&btwj=20160915Aa9Si.html
http://www.yqcq.gov.cn/e/space/?userid=593683&kqph=20160915Fx5Ln.html
http://www.yqcq.gov.cn/e/space/?userid=593687&gmlj=20160915Ru7Vo.html
http://www.yqcq.gov.cn/e/space/?userid=593690&jeiy=20160915Iu8Wo.html
http://www.yqcq.gov.cn/e/space/?userid=593695&qvee=20160915Up5Gx.html
http://www.yqcq.gov.cn/e/space/?userid=593700&qjey=20160915Xd5Ea.html
http://www.yqcq.gov.cn/e/space/?userid=593703&lzwy=20160915Lf7Ro.html
http://www.yqcq.gov.cn/e/space/?userid=593709&oohk=20160915Tk3Un.html
http://www.yqcq.gov.cn/e/space/?userid=593714&beda=20160915Hc8Fv.html
http://www.yqcq.gov.cn/e/space/?userid=593716&ydts=20160915Yf5Pn.html
http://www.yqcq.gov.cn/e/space/?userid=593721&hdtj=20160915Ml2Sd.html
http://www.yqcq.gov.cn/e/space/?userid=593724&eqhn=20160915Ep4Bh.html
http://www.yqcq.gov.cn/e/space/?userid=593728&fhnx=20160915Zi2Tf.html
http://www.yqcq.gov.cn/e/space/?userid=593733&rcvf=20160915Ew7Pf.html
http://www.yqcq.gov.cn/e/space/?userid=593736&qqsj=20160915Pk8By.html
http://www.yqcq.gov.cn/e/space/?userid=593741&rnhi=20160915Sa4Cz.html
http://www.yqcq.gov.cn/e/space/?userid=593743&hfkp=20160915Aa0Wp.html
http://www.yqcq.gov.cn/e/space/?userid=593748&uome=20160915Zv4Cp.html
http://www.yqcq.gov.cn/e/space/?userid=593754&esck=20160915Nk5Ho.html
http://www.yqcq.gov.cn/e/space/?userid=593756&pjtt=20160915Wh8Sq.html
http://www.yqcq.gov.cn/e/space/?userid=593761&gqur=20160915Wv0Ca.html
http://www.yqcq.gov.cn/e/space/?userid=593764&lgzu=20160915Fr3Pe.html
http://www.yqcq.gov.cn/e/space/?userid=593769&eewv=20160915Sj2Mw.html
http://www.yqcq.gov.cn/e/space/?userid=593776&qruy=20160915Dr9It.html
http://www.yqcq.gov.cn/e/space/?userid=593777&bywu=20160915Aq4Ha.html
http://www.yqcq.gov.cn/e/space/?userid=593783&iuys=20160915Rb2Rs.html
http://www.yqcq.gov.cn/e/space/?userid=593785&ulul=20160915Ia1Av.html
http://www.yqcq.gov.cn/e/space/?userid=593790&nhyk=20160915Es5Ge.html
http://www.yqcq.gov.cn/e/space/?userid=593795&oqtd=20160915Mj1Dc.html
http://www.yqcq.gov.cn/e/space/?userid=593797&udsx=20160915Hu2Yw.html
http://www.yqcq.gov.cn/e/space/?userid=593803&daid=20160915Dz3Nn.html
http://www.yqcq.gov.cn/e/space/?userid=593805&dzhl=20160915Zu2Sl.html
http://www.yqcq.gov.cn/e/space/?userid=593812&qfcr=20160915Ym1Jo.html
http://www.yqcq.gov.cn/e/space/?userid=593816&xafn=20160915Nw2Np.html
http://www.yqcq.gov.cn/e/space/?userid=593819&mgls=20160915Jx8Pr.html
http://www.yqcq.gov.cn/e/space/?userid=593825&xflr=20160915Ly7Vi.html
http://www.yqcq.gov.cn/e/space/?userid=593830&lauk=20160915Rc8Ou.html
http://www.yqcq.gov.cn/e/space/?userid=593832&jxar=20160915Xc4Et.html
http://www.yqcq.gov.cn/e/space/?userid=593836&pkqy=20160915Es5Zp.html
http://www.yqcq.gov.cn/e/space/?userid=593839&lvin=20160915Zl7Gq.html
http://www.yqcq.gov.cn/e/space/?userid=593845&dekx=20160915Ce2Ac.html
http://www.yqcq.gov.cn/e/space/?userid=593849&jvzo=20160915Rx9It.html
http://www.yqcq.gov.cn/e/space/?userid=593852&qkqs=20160915Av2Qx.html
http://www.yqcq.gov.cn/e/space/?userid=593857&uboz=20160915Gi5Hx.html
http://www.yqcq.gov.cn/e/space/?userid=593863&hgqi=20160915Jj1Wq.html
http://www.yqcq.gov.cn/e/space/?userid=593866&vgna=20160915Oz8Ot.html
http://www.yqcq.gov.cn/e/space/?userid=593871&gddj=20160915Bg5Bh.html
http://www.yqcq.gov.cn/e/space/?userid=593873&thbf=20160915Nf4Pj.html
http://www.yqcq.gov.cn/e/space/?userid=593878&qtik=20160915Kj2Yp.html
http://www.yqcq.gov.cn/e/space/?userid=593883&gphq=20160915Ys1Mc.html
http://www.yqcq.gov.cn/e/space/?userid=593886&nwar=20160915Lo2Ib.html
http://www.yqcq.gov.cn/e/space/?userid=593891&qldv=20160915Lq3Nl.html
http://www.yqcq.gov.cn/e/space/?userid=593897&gdtl=20160915He5Bx.html
http://www.yqcq.gov.cn/e/space/?userid=593899&indn=20160915Wu0On.html
http://www.yqcq.gov.cn/e/space/?userid=593904&ppkz=20160915Kv3Ws.html
http://www.yqcq.gov.cn/e/space/?userid=593906&mxam=20160915Pe4Ut.html
http://www.yqcq.gov.cn/e/space/?userid=593912&ohlf=20160915St2Hm.html
http://www.yqcq.gov.cn/e/space/?userid=593917&zrsz=20160915Pq8Sq.html
http://www.yqcq.gov.cn/e/space/?userid=593920&hmql=20160915Aa7Wy.html
http://www.yqcq.gov.cn/e/space/?userid=593927&bjfg=20160915Vh1Zr.html
http://www.yqcq.gov.cn/e/space/?userid=593928&djwk=20160915Ei6Wi.html
http://www.yqcq.gov.cn/e/space/?userid=593934&dbmt=20160915Fx6Mc.html
http://www.yqcq.gov.cn/e/space/?userid=593939&mknw=20160915Vx5Gw.html
http://www.yqcq.gov.cn/e/space/?userid=593942&inaj=20160915Es4Lq.html
http://www.yqcq.gov.cn/e/space/?userid=593946&kklo=20160915Rt9Ev.html
http://www.yqcq.gov.cn/e/space/?userid=593949&imby=20160915Gz8Ig.html
http://www.yqcq.gov.cn/e/space/?userid=593955&fpjj=20160915Vr3Bv.html
http://www.yqcq.gov.cn/e/space/?userid=593960&khsa=20160915Ti8Ka.html
http://www.yqcq.gov.cn/e/space/?userid=593966&idms=20160915Yd8Op.html
http://www.yqcq.gov.cn/e/space/?userid=593968&ncwy=20160915Nm9Ir.html
http://www.yqcq.gov.cn/e/space/?userid=593974&zjsu=20160915Uu2Cw.html
http://www.yqcq.gov.cn/e/space/?userid=593977&zbbl=20160915Jb8Ls.html
http://www.yqcq.gov.cn/e/space/?userid=593982&cgoq=20160915Bw2Zi.html
http://www.yqcq.gov.cn/e/space/?userid=593989&bwic=20160915Df2Xt.html
http://www.yqcq.gov.cn/e/space/?userid=593990&elyi=20160915Gf8Ci.html
http://www.yqcq.gov.cn/e/space/?userid=593996&khya=20160915Nv8Xy.html
http://www.yqcq.gov.cn/e/space/?userid=594001&nnkr=20160915Ow8Ub.html
http://www.yqcq.gov.cn/e/space/?userid=594004&wbnn=20160915Ej1Zu.html
http://www.yqcq.gov.cn/e/space/?userid=594009&nckw=20160915Ec7Pd.html
http://www.yqcq.gov.cn/e/space/?userid=594012&ynfz=20160915Hz6Ic.html
http://www.yqcq.gov.cn/e/space/?userid=594019&knci=20160915Sy5Qg.html
http://www.yqcq.gov.cn/e/space/?userid=594023&gars=20160915Jk2Cu.html
http://www.yqcq.gov.cn/e/space/?userid=594026&ymkx=20160915Zp6Js.html
http://www.yqcq.gov.cn/e/space/?userid=594031&ynej=20160915Kg9Vd.html
http://www.yqcq.gov.cn/e/space/?userid=594033&zfsz=20160915Bc8Lx.html
http://www.yqcq.gov.cn/e/space/?userid=594039&kwfa=20160915Am6Jf.html
http://www.yqcq.gov.cn/e/space/?userid=594043&hhfu=20160915Yg0Qp.html
http://www.yqcq.gov.cn/e/space/?userid=594045&cpmu=20160915Zm1Jf.html
http://www.yqcq.gov.cn/e/space/?userid=594049&tdib=20160915Pp8Ru.html
http://www.yqcq.gov.cn/e/space/?userid=594051&wwrp=20160915Zm2Kb.html
http://www.yqcq.gov.cn/e/space/?userid=594055&auip=20160915Px1Os.html
http://www.yqcq.gov.cn/e/space/?userid=594060&zpeo=20160915Ne8Fi.html
http://www.yqcq.gov.cn/e/space/?userid=594063&nrwh=20160915Pk0Uh.html
http://www.yqcq.gov.cn/e/space/?userid=594067&kdne=20160915Tl5Ba.html
http://www.yqcq.gov.cn/e/space/?userid=594073&fqfn=20160915Vo5Yy.html
http://www.yqcq.gov.cn/e/space/?userid=594075&mbcv=20160915Jm3Is.html
http://www.yqcq.gov.cn/e/space/?userid=594081&cghs=20160915Ab5Va.html
http://www.yqcq.gov.cn/e/space/?userid=594083&msga=20160915Qq5Cu.html
http://www.yqcq.gov.cn/e/space/?userid=594088&zfni=20160915Zx1Mk.html
http://www.yqcq.gov.cn/e/space/?userid=594094&nmlx=20160915Qs9By.html
http://www.yqcq.gov.cn/e/space/?userid=594098&ptcn=20160915Vb3Ii.html
http://www.yqcq.gov.cn/e/space/?userid=594102&neml=20160915Ny7Pj.html
http://www.yqcq.gov.cn/e/space/?userid=594108&cxcc=20160915Py8Ai.html
http://www.yqcq.gov.cn/e/space/?userid=594111&usad=20160915Rj4Sx.html
http://www.yqcq.gov.cn/e/space/?userid=594117&aozi=20160915Oc9Fj.html
http://www.yqcq.gov.cn/e/space/?userid=594119&wois=20160915Wm8Px.html
http://www.yqcq.gov.cn/e/space/?userid=594124&vxha=20160915Gs0Bv.html
http://www.yqcq.gov.cn/e/space/?userid=594130&skvq=20160915Ca6Gf.html
http://www.yqcq.gov.cn/e/space/?userid=594132&xsxy=20160915An5Hy.html
http://www.yqcq.gov.cn/e/space/?userid=594139>bm=20160915Is8Sq.html
http://www.yqcq.gov.cn/e/space/?userid=594140&zhnc=20160915Wc2Xv.html
http://www.yqcq.gov.cn/e/space/?userid=594146&gaby=20160915So9Yh.html
http://www.yqcq.gov.cn/e/space/?userid=594151&zhsi=20160915It9Wu.html
http://www.yqcq.gov.cn/e/space/?userid=594153&femm=20160915Fz3Ci.html
http://www.yqcq.gov.cn/e/space/?userid=594158&ixsj=20160915Ay8Il.html
http://www.yqcq.gov.cn/e/space/?userid=594161&nmwh=20160915Mz6Kw.html
http://www.yqcq.gov.cn/e/space/?userid=594167&urkl=20160915Qn6Aw.html
http://www.yqcq.gov.cn/e/space/?userid=594173&ugas=20160915Fv6Xf.html
http://www.yqcq.gov.cn/e/space/?userid=594175&mgxu=20160915Rc7Qf.html
http://www.yqcq.gov.cn/e/space/?userid=594181&eyyx=20160915Xv0Cj.html
http://www.yqcq.gov.cn/e/space/?userid=594186&lpwc=20160915Ku9Fo.html
http://www.yqcq.gov.cn/e/space/?userid=594189&cjsb=20160915Lq4Rp.html
http://www.yqcq.gov.cn/e/space/?userid=594193&ubwe=20160915Bv7Mf.html
http://www.yqcq.gov.cn/e/space/?userid=594196&nnbo=20160915At9Ly.html
http://www.yqcq.gov.cn/e/space/?userid=594200&umev=20160915Of5Cn.html
http://www.yqcq.gov.cn/e/space/?userid=594206&lozi=20160915Zn9Pw.html
http://www.yqcq.gov.cn/e/space/?userid=594210&xtak=20160915Js1Gu.html
http://www.yqcq.gov.cn/e/space/?userid=594215&wdxv=20160915Wh7Nd.html
http://www.yqcq.gov.cn/e/space/?userid=594220&ufcx=20160915Dt7Ob.html
http://www.yqcq.gov.cn/e/space/?userid=594223&dhxp=20160915Fl6Tn.html
http://www.yqcq.gov.cn/e/space/?userid=594228&amcj=20160915Mr9Em.html
http://www.yqcq.gov.cn/e/space/?userid=594230&egak=20160915Vs0Mz.html
http://www.yqcq.gov.cn/e/space/?userid=594236&rkjp=20160915Td5Ub.html
http://www.yqcq.gov.cn/e/space/?userid=594241&pdbt=20160915Fg1Nf.html
http://www.yqcq.gov.cn/e/space/?userid=594243&tcgb=20160915Xm9Ta.html
http://www.yqcq.gov.cn/e/space/?userid=594249&eoyz=20160915Or5Fi.html
http://www.yqcq.gov.cn/e/space/?userid=594254&phmb=20160915Kd7Vd.html
http://www.yqcq.gov.cn/e/space/?userid=594256&hvlp=20160915La1Ql.html
http://www.yqcq.gov.cn/e/space/?userid=594261&exfu=20160915Wv3Xa.html
http://www.yqcq.gov.cn/e/space/?userid=594266&rgmd=20160915Pc5Cg.html
http://www.yqcq.gov.cn/e/space/?userid=594270&xpop=20160915Xe2Xx.html
http://www.yqcq.gov.cn/e/space/?userid=594275&lqyc=20160915Vs5Ip.html
http://www.yqcq.gov.cn/e/space/?userid=594277&lajh=20160915Ey5Qn.html
http://www.yqcq.gov.cn/e/space/?userid=594282&agyu=20160915Et2Nk.html
http://www.yqcq.gov.cn/e/space/?userid=594287&krsy=20160915Mj0Bt.html
http://www.yqcq.gov.cn/e/space/?userid=594289&wiow=20160915Jt7Uk.html
http://www.yqcq.gov.cn/e/space/?userid=594295&quhx=20160915Gb0Xs.html
http://www.yqcq.gov.cn/e/space/?userid=594297&hlfo=20160915Ib0Qu.html
http://www.yqcq.gov.cn/e/space/?userid=594302&ddze=20160915Mb4Ih.html
http://www.yqcq.gov.cn/e/space/?userid=594307&gass=20160915Rv4Bd.html
http://www.yqcq.gov.cn/e/space/?userid=594310&svkx=20160915Ot2Iz.html
http://www.yqcq.gov.cn/e/space/?userid=594315&ytbd=20160915Cj7Bh.html
http://www.yqcq.gov.cn/e/space/?userid=594320&rrvh=20160915Ry4Kg.html
http://www.yqcq.gov.cn/e/space/?userid=594322&tkhp=20160915Dc0Sw.html
http://www.yqcq.gov.cn/e/space/?userid=594327&dzcd=20160915Qo0Pu.html
http://www.yqcq.gov.cn/e/space/?userid=594329&aepp=20160915Iz2Zj.html
http://www.yqcq.gov.cn/e/space/?userid=594334&iqmk=20160915Db1Wo.html
http://www.yqcq.gov.cn/e/space/?userid=594339&qhsj=20160915Wb4Ii.html
http://www.yqcq.gov.cn/e/space/?userid=594342&dlwz=20160915Nv8Ws.html
http://www.yqcq.gov.cn/e/space/?userid=594347&metr=20160915Lk6Aa.html
http://www.yqcq.gov.cn/e/space/?userid=594350&nfgv=20160915Dr1Dl.html
http://www.yqcq.gov.cn/e/space/?userid=594356&dvgl=20160915Uv9Vc.html
http://www.yqcq.gov.cn/e/space/?userid=594360&eccw=20160915Rk3Lt.html
http://www.yqcq.gov.cn/e/space/?userid=594363&aajc=20160915Ic9Dy.html
http://www.yqcq.gov.cn/e/space/?userid=594367&ggia=20160915Dp9Ql.html
http://www.yqcq.gov.cn/e/space/?userid=594373&mxly=20160915Bs3Am.html
http://www.yqcq.gov.cn/e/space/?userid=594375&ygno=20160915Ip9Xk.html
http://www.yqcq.gov.cn/e/space/?userid=594381&lbny=20160915Uu1Zb.html
http://www.yqcq.gov.cn/e/space/?userid=594383&erly=20160915Li2Bu.html
http://www.yqcq.gov.cn/e/space/?userid=594389&ihfx=20160915Ae3Hs.html
http://www.yqcq.gov.cn/e/space/?userid=594393&zjin=20160915Eg2Pi.html
http://www.yqcq.gov.cn/e/space/?userid=594398&wfrm=20160915Ux4Cu.html
http://www.yqcq.gov.cn/e/space/?userid=594401&etdi=20160915Hn0Jl.html
http://www.yqcq.gov.cn/e/space/?userid=594407&xrhw=20160915Pb7Uh.html
http://www.yqcq.gov.cn/e/space/?userid=594409&prnj=20160915Qw4Fe.html
http://www.yqcq.gov.cn/e/space/?userid=594414&czpv=20160915Je3Dw.html
http://www.yqcq.gov.cn/e/space/?userid=594420&jdku=20160915Wr4Rk.html
http://www.yqcq.gov.cn/e/space/?userid=594421&dkbg=20160915Ru6Io.html
http://www.yqcq.gov.cn/e/space/?userid=594426&qfku=20160915Hb5Sv.html
http://www.yqcq.gov.cn/e/space/?userid=594428&oufo=20160915Ki3Qz.html
http://www.yqcq.gov.cn/e/space/?userid=594434&rkdp=20160915Bh0Vm.html
http://www.yqcq.gov.cn/e/space/?userid=594439&xakg=20160915Gw3Ty.html
http://www.yqcq.gov.cn/e/space/?userid=594442&fcqs=20160915Va1Pf.html
http://www.yqcq.gov.cn/e/space/?userid=594446&uscc=20160915Iq4Hd.html
http://www.yqcq.gov.cn/e/space/?userid=594450&luye=20160915Nq5Kw.html
http://www.yqcq.gov.cn/e/space/?userid=594454&jhqg=20160915Zn4Vm.html
http://www.yqcq.gov.cn/e/space/?userid=594458&oxay=20160915Ae0Nf.html
http://www.yqcq.gov.cn/e/space/?userid=594460&chmk=20160915Va2Gr.html
http://www.yqcq.gov.cn/e/space/?userid=594466&dzyu=20160915Dw7Py.html
http://www.yqcq.gov.cn/e/space/?userid=594471&fqwl=20160915Yc6Uq.html
http://www.yqcq.gov.cn/e/space/?userid=594474&tsag=20160915Mj3Tw.html
http://www.yqcq.gov.cn/e/space/?userid=594479&hfib=20160915Ch8Of.html
http://www.yqcq.gov.cn/e/space/?userid=594481&ysfo=20160915Me5Cc.html
http://www.yqcq.gov.cn/e/space/?userid=594486&gfmc=20160915Jn7Yb.html
http://www.yqcq.gov.cn/e/space/?userid=594492&jbjq=20160915Cg8Zp.html
http://www.yqcq.gov.cn/e/space/?userid=594494&sqgq=20160915Wu6If.html
http://www.yqcq.gov.cn/e/space/?userid=594499&lfvu=20160915Fc1Ur.html
http://www.yqcq.gov.cn/e/space/?userid=594506&hcvo=20160915Js0Ac.html
http://www.yqcq.gov.cn/e/space/?userid=594507&mmef=20160915Ec8El.html
http://www.yqcq.gov.cn/e/space/?userid=594512&nhbh=20160915An0Bh.html
http://www.yqcq.gov.cn/e/space/?userid=594515&fppp=20160915Tv9Ig.html
http://www.yqcq.gov.cn/e/space/?userid=594519&oouv=20160915Wk2Kj.html
http://www.yqcq.gov.cn/e/space/?userid=594524&fsot=20160915Sn5Tv.html
http://www.yqcq.gov.cn/e/space/?userid=594527&zbjb=20160915Jo3Kg.html
http://www.yqcq.gov.cn/e/space/?userid=594531&bbbe=20160915Rl4Xt.html
http://www.yqcq.gov.cn/e/space/?userid=594534&cksw=20160915Lc3Oi.html
http://www.yqcq.gov.cn/e/space/?userid=594540&oopw=20160915Pf2Mw.html
http://www.yqcq.gov.cn/e/space/?userid=594546&vsyj=20160915Ji2En.html
http://www.yqcq.gov.cn/e/space/?userid=594548&xpqa=20160915Ab5On.html
http://www.yqcq.gov.cn/e/space/?userid=594553&srvw=20160915Tc8Re.html
http://www.yqcq.gov.cn/e/space/?userid=594559&imxo=20160915Ak9Lg.html
http://www.yqcq.gov.cn/e/space/?userid=594561&pqox=20160915Bi3Sp.html
http://www.yqcq.gov.cn/e/space/?userid=594566&uziu=20160915Nf9Zq.html
http://www.yqcq.gov.cn/e/space/?userid=594572&xyst=20160915Wg7Vh.html
http://www.yqcq.gov.cn/e/space/?userid=594574&vkvt=20160915Nj0Ci.html
http://www.yqcq.gov.cn/e/space/?userid=594579ª=20160915Qe8Os.html
http://www.yqcq.gov.cn/e/space/?userid=594584&nejc=20160915Ro1Bm.html
http://www.yqcq.gov.cn/e/space/?userid=594585&hgvg=20160915Oz9Fl.html
http://www.yqcq.gov.cn/e/space/?userid=594591&bpuw=20160915Vc1Xd.html
http://www.yqcq.gov.cn/e/space/?userid=594592&bcav=20160915Xd3It.html
http://www.yqcq.gov.cn/e/space/?userid=594597&zjyj=20160915Bo1Ep.html
http://www.yqcq.gov.cn/e/space/?userid=594602&owzs=20160915Ut5We.html
http://www.yqcq.gov.cn/e/space/?userid=594603&ygaj=20160915Xs2Fw.html
http://www.yqcq.gov.cn/e/space/?userid=594608&xupx=20160915Hm1Yv.html
http://www.yqcq.gov.cn/e/space/?userid=594612&fqjw=20160915Qm3Nd.html
http://www.yqcq.gov.cn/e/space/?userid=594614&qvaa=20160915Tl9Yl.html
http://www.yqcq.gov.cn/e/space/?userid=594620&dtmo=20160915Cz1Kk.html
http://www.yqcq.gov.cn/e/space/?userid=594621&edhs=20160915Ny9Fs.html
http://www.yqcq.gov.cn/e/space/?userid=594627&etfb=20160915Zg6Jp.html
http://www.yqcq.gov.cn/e/space/?userid=594633&wqru=20160915Xg5Jb.html
http://www.yqcq.gov.cn/e/space/?userid=594634&gabf=20160915Br0Ew.html
http://www.yqcq.gov.cn/e/space/?userid=594639&cjgk=20160915Am8Fu.html
http://www.yqcq.gov.cn/e/space/?userid=594642&bvcn=20160915Fs0Lb.html
http://www.yqcq.gov.cn/e/space/?userid=594647&kgat=20160915Vr8Oy.html
http://www.yqcq.gov.cn/e/space/?userid=594653&kzvk=20160915Eq8So.html
http://www.yqcq.gov.cn/e/space/?userid=594654&hyvd=20160915Kb9Bw.html
http://www.yqcq.gov.cn/e/space/?userid=594660&arcq=20160915Fx0Al.html
http://www.yqcq.gov.cn/e/space/?userid=594661&mmha=20160915Rf3Ha.html
http://www.yqcq.gov.cn/e/space/?userid=594667&glws=20160915Zc9Eh.html
http://www.yqcq.gov.cn/e/space/?userid=594673&otik=20160915Wj7Aw.html
http://www.yqcq.gov.cn/e/space/?userid=594675&cnkq=20160915Sb5Ej.html
http://www.yqcq.gov.cn/e/space/?userid=594681&vttv=20160915Jr3Kv.html
http://www.yqcq.gov.cn/e/space/?userid=594683&mjtd=20160915Nl0Sq.html
http://www.yqcq.gov.cn/e/space/?userid=594688&umwp=20160915Yf8Zc.html
http://www.yqcq.gov.cn/e/space/?userid=594695&ouit=20160915Qk0Ip.html
http://www.yqcq.gov.cn/e/space/?userid=594696&kits=20160915Jb2Hc.html
http://www.yqcq.gov.cn/e/space/?userid=594702&usxp=20160915Px5Ni.html
http://www.yqcq.gov.cn/e/space/?userid=594706&iaua=20160915Ad6Gt.html
http://www.yqcq.gov.cn/e/space/?userid=594709&fidd=20160915Jx8Db.html
http://www.yqcq.gov.cn/e/space/?userid=594714&lztb=20160915Ze2Jr.html
http://www.yqcq.gov.cn/e/space/?userid=594716&dacw=20160915Sw9Li.html
http://www.yqcq.gov.cn/e/space/?userid=594721&vpyq=20160915Qs2Ih.html
http://www.yqcq.gov.cn/e/space/?userid=594728&waxn=20160915Zt8Rk.html
http://www.yqcq.gov.cn/e/space/?userid=594730&mwni=20160915Wg9Wu.html
http://www.yqcq.gov.cn/e/space/?userid=594736&zlvh=20160915Ua2Gd.html
http://www.yqcq.gov.cn/e/space/?userid=594737&qqqp=20160915Qv5Mq.html
http://www.yqcq.gov.cn/e/space/?userid=594742&zdml=20160915Bx3Pg.html
http://www.yqcq.gov.cn/e/space/?userid=594746&jguj=20160915Wj5Ke.html
http://www.yqcq.gov.cn/e/space/?userid=594749&zwly=20160915Hs0Aw.html
http://www.yqcq.gov.cn/e/space/?userid=594754&kzdg=20160915Hu6Ml.html
http://www.yqcq.gov.cn/e/space/?userid=594757&gdfw=20160915Ji4Mu.html
http://www.yqcq.gov.cn/e/space/?userid=594762&idei=20160915Rc0Ry.html
http://www.yqcq.gov.cn/e/space/?userid=594768&mzed=20160915Gd1Yt.html
http://www.yqcq.gov.cn/e/space/?userid=594774&dtkg=20160915Vd0Ea.html
http://www.yqcq.gov.cn/e/space/?userid=594780&cyrs=20160915Vd6Ql.html
http://www.yqcq.gov.cn/e/space/?userid=594782&ihsg=20160915Dy7Rm.html
http://www.yqcq.gov.cn/e/space/?userid=594787&duba=20160915Ud9Mn.html
http://www.yqcq.gov.cn/e/space/?userid=594793&brns=20160915Fn4Db.html
http://www.yqcq.gov.cn/e/space/?userid=594795&juqa=20160915In4Ur.html
http://www.yqcq.gov.cn/e/space/?userid=594800&nvys=20160915Mt5Ok.html
http://www.yqcq.gov.cn/e/space/?userid=594805&nyvl=20160915Mj0Qn.html
http://www.yqcq.gov.cn/e/space/?userid=594807&nzeo=20160915Gv7Dp.html
http://www.yqcq.gov.cn/e/space/?userid=594812&idou=20160915Cz6Jm.html
http://www.yqcq.gov.cn/e/space/?userid=594815&ehpg=20160915Up8Bm.html
http://www.yqcq.gov.cn/e/space/?userid=594819&suxt=20160915Jk6Fa.html
http://www.yqcq.gov.cn/e/space/?userid=594826&asfg=20160915Ff8Ny.html
http://www.yqcq.gov.cn/e/space/?userid=594831&yhva=20160915Wm7Qx.html
http://www.yqcq.gov.cn/e/space/?userid=594838&nvbz=20160915Zh9Qa.html
http://www.yqcq.gov.cn/e/space/?userid=594840&imee=20160915Zs4Ur.html
http://www.yqcq.gov.cn/e/space/?userid=594846&yxdw=20160915Fm0Du.html
http://www.yqcq.gov.cn/e/space/?userid=594852&rmsq=20160915Ar5Fw.html
http://www.yqcq.gov.cn/e/space/?userid=594854&gihc=20160915Od1Ze.html
http://www.yqcq.gov.cn/e/space/?userid=594859&qwuc=20160915Fn4Cu.html
http://www.yqcq.gov.cn/e/space/?userid=594861&cqmb=20160915As5Gc.html
http://www.yqcq.gov.cn/e/space/?userid=594868&wcqa=20160915Kt4Xn.html
http://www.yqcq.gov.cn/e/space/?userid=594873&eial=20160915Ds8Ro.html
http://www.yqcq.gov.cn/e/space/?userid=594879&shrp=20160915Cb1Mk.html
http://www.yqcq.gov.cn/e/space/?userid=594881&bfkb=20160915Xn7Qu.html
http://www.yqcq.gov.cn/e/space/?userid=594892&ptib=20160915Xb9No.html
http://www.yqcq.gov.cn/e/space/?userid=594897&hahp=20160915Oh6Yg.html
http://www.yqcq.gov.cn/e/space/?userid=594899&nldy=20160915Sn8Nb.html
http://www.yqcq.gov.cn/e/space/?userid=594905&qqfq=20160915Gm7Xy.html
http://www.yqcq.gov.cn/e/space/?userid=594910&kdrf=20160915To7Jd.html
http://www.yqcq.gov.cn/e/space/?userid=594914&lfft=20160915Lm0Ed.html
http://www.yqcq.gov.cn/e/space/?userid=594920&arjx=20160915Dz9Kd.html
http://www.yqcq.gov.cn/e/space/?userid=594922&woxd=20160915Ds0Hd.html
http://www.yqcq.gov.cn/e/space/?userid=594927&imsr=20160915Mu5Ig.html
http://www.yqcq.gov.cn/e/space/?userid=594933&lhkl=20160915Ij3Zy.html
http://www.yqcq.gov.cn/e/space/?userid=594938&oone=20160915Ys1Sd.html
http://www.yqcq.gov.cn/e/space/?userid=594940&zgkc=20160915Xm3Zp.html
http://www.yqcq.gov.cn/e/space/?userid=594946&wzll=20160915Wn6Tb.html
http://www.yqcq.gov.cn/e/space/?userid=594948&jtte=20160915Sk7Ni.html
http://www.yqcq.gov.cn/e/space/?userid=594953&puwr=20160915Aa1Cg.html
http://www.yqcq.gov.cn/e/space/?userid=594960&jmsv=20160915Pg1Nx.html
http://www.yqcq.gov.cn/e/space/?userid=594961&hhcu=20160915Gu6Hd.html
http://www.yqcq.gov.cn/e/space/?userid=594968&hvoj=20160915Hw3Od.html
http://www.yqcq.gov.cn/e/space/?userid=594973&wfni=20160915Wa8Ew.html
http://www.yqcq.gov.cn/e/space/?userid=594975&hmxg=20160915Nm1Sh.html
http://www.yqcq.gov.cn/e/space/?userid=594980&ukzo=20160915Ka9Bm.html
http://www.yqcq.gov.cn/e/space/?userid=594985&askj=20160915Gi4Br.html
http://www.yqcq.gov.cn/e/space/?userid=594987&hrma=20160915Rg3Rr.html
http://www.yqcq.gov.cn/e/space/?userid=594993&ekdt=20160915Qh9Xx.html
http://www.yqcq.gov.cn/e/space/?userid=594998&vdtb=20160915Jc2Zz.html
http://www.yqcq.gov.cn/e/space/?userid=595000&ehfp=20160915Te6Gf.html
http://www.yqcq.gov.cn/e/space/?userid=595006&tvev=20160915Jn8Wo.html
http://www.yqcq.gov.cn/e/space/?userid=595011&vibl=20160915Cz7Vs.html
http://www.yqcq.gov.cn/e/space/?userid=595014&rcdg=20160915Dm7Cv.html
http://www.yqcq.gov.cn/e/space/?userid=595019&adqn=20160915Te8Vs.html
http://www.yqcq.gov.cn/e/space/?userid=595021&jeel=20160915Sp2Hr.html
http://www.yqcq.gov.cn/e/space/?userid=595026&oopr=20160915Ud9Ub.html
http://www.yqcq.gov.cn/e/space/?userid=595030&vihc=20160915Yx1Jz.html
http://www.yqcq.gov.cn/e/space/?userid=595033&wvgg=20160915Bp5Th.html
http://www.yqcq.gov.cn/e/space/?userid=595038&yumw=20160915Fn6Nr.html
http://www.yqcq.gov.cn/e/space/?userid=595039&fetv=20160915Vg0Mz.html
http://www.yqcq.gov.cn/e/space/?userid=595045&gqhx=20160915Zp7Km.html
http://www.yqcq.gov.cn/e/space/?userid=595049&alwn=20160915Vo9Kf.html
http://www.yqcq.gov.cn/e/space/?userid=595051&meqk=20160915Hx0Fj.html
http://www.yqcq.gov.cn/e/space/?userid=595057&yoba=20160915Ik7Sx.html
http://www.yqcq.gov.cn/e/space/?userid=595059&niaa=20160915Qx2Qa.html
http://www.yqcq.gov.cn/e/space/?userid=595064&gwhm=20160915Yx0Tg.html
http://www.yqcq.gov.cn/e/space/?userid=595069&oztu=20160915Wx3Id.html
http://www.yqcq.gov.cn/e/space/?userid=595073&iech=20160915Ft8Bp.html
http://www.yqcq.gov.cn/e/space/?userid=595078&vahq=20160915Xh7Ik.html
http://www.yqcq.gov.cn/e/space/?userid=595083&beqm=20160915Ww1Dl.html
http://www.yqcq.gov.cn/e/space/?userid=595086&asey=20160915Xh9Xw.html
http://www.yqcq.gov.cn/e/space/?userid=595091&sbrx=20160915Xe9Ph.html
http://www.yqcq.gov.cn/e/space/?userid=595095&knwu=20160915Zr9Ku.html
http://www.yqcq.gov.cn/e/space/?userid=595097&hiug=20160915Ie5Tt.html
http://www.yqcq.gov.cn/e/space/?userid=595101&wgys=20160915Pb8Jc.html
http://www.yqcq.gov.cn/e/space/?userid=595107&fexn=20160915Fy5Ix.html
http://www.yqcq.gov.cn/e/space/?userid=595110&bifk=20160915Ys5Le.html
http://www.yqcq.gov.cn/e/space/?userid=595114&sxzi=20160915Se0Gc.html
http://www.yqcq.gov.cn/e/space/?userid=595117&yydk=20160915Pp8Bl.html
http://www.yqcq.gov.cn/e/space/?userid=595121&wrla=20160915Pl8Rq.html
http://www.yqcq.gov.cn/e/space/?userid=595127&cvud=20160915Im2Ik.html
http://www.yqcq.gov.cn/e/space/?userid=595129&zulj=20160915Wa7Sc.html
http://www.yqcq.gov.cn/e/space/?userid=595133&czni=20160915Uq1Ik.html
http://www.yqcq.gov.cn/e/space/?userid=595136&yahv=20160915Is0Wn.html
http://www.yqcq.gov.cn/e/space/?userid=595142&jifw=20160915Yw1Jg.html
http://www.yqcq.gov.cn/e/space/?userid=595146&woxs=20160915Jo3Og.html
http://www.yqcq.gov.cn/e/space/?userid=595149&uuon=20160915Al3Wk.html
http://www.yqcq.gov.cn/e/space/?userid=595153&sxnr=20160915Jd8Zg.html
http://www.yqcq.gov.cn/e/space/?userid=595159&skvy=20160915Qz3Ja.html
http://www.yqcq.gov.cn/e/space/?userid=595161&wwzc=20160915Fx0Tx.html
http://www.yqcq.gov.cn/e/space/?userid=595166&uqkp=20160915Dm6Ac.html
http://www.yqcq.gov.cn/e/space/?userid=595169&manc=20160915Qo7Js.html
http://www.yqcq.gov.cn/e/space/?userid=595174&xwni=20160915Mk5Vs.html
http://www.yqcq.gov.cn/e/space/?userid=595179&fvsc=20160915Rh2He.html
http://www.yqcq.gov.cn/e/space/?userid=595185&jnvo=20160915Is0Jf.html
http://www.yqcq.gov.cn/e/space/?userid=595191&rnwh=20160915Ta3Mm.html
http://www.yqcq.gov.cn/e/space/?userid=595194&jgho=20160915Jt9Mr.html
http://www.yqcq.gov.cn/e/space/?userid=595199&nynm=20160915Xf0Dk.html
http://www.yqcq.gov.cn/e/space/?userid=595204&jcal=20160915Ok9Rn.html
http://www.yqcq.gov.cn/e/space/?userid=595208&rxqx=20160915Ly8Cp.html
http://www.yqcq.gov.cn/e/space/?userid=595212&knfz=20160915Oz8Lh.html
http://www.yqcq.gov.cn/e/space/?userid=595218&ftjv=20160915Ym3Zl.html
http://www.yqcq.gov.cn/e/space/?userid=595219&ziyu=20160915Me0Ut.html
http://www.yqcq.gov.cn/e/space/?userid=595225&xkcs=20160915Ot6Dl.html
http://www.yqcq.gov.cn/e/space/?userid=595228&zzwc=20160915Ei5Ea.html
http://www.yqcq.gov.cn/e/space/?userid=595232&xdnl=20160915Mx8Yf.html
http://www.yqcq.gov.cn/e/space/?userid=595237&ezsn=20160915Qg9Ao.html
http://www.yqcq.gov.cn/e/space/?userid=595240&cxhu=20160915Tb2Jg.html
http://www.yqcq.gov.cn/e/space/?userid=595246&dmfk=20160915Rt3Ge.html
http://www.yqcq.gov.cn/e/space/?userid=595247&tkar=20160915Pn1Zd.html
http://www.yqcq.gov.cn/e/space/?userid=595254&llbw=20160915Kp5Xh.html
http://www.yqcq.gov.cn/e/space/?userid=595259&sclp=20160915Ne1Lr.html
http://www.yqcq.gov.cn/e/space/?userid=595261&pjoy=20160915Yl7Kp.html
http://www.yqcq.gov.cn/e/space/?userid=595266&ndjw=20160915Kr0Ge.html
http://www.yqcq.gov.cn/e/space/?userid=595270&wxqt=20160915Ui7Gj.html
http://www.yqcq.gov.cn/e/space/?userid=595272&syod=20160915Jt9Rk.html
http://www.yqcq.gov.cn/e/space/?userid=595277&qfrc=20160915Yf6Mi.html
http://www.yqcq.gov.cn/e/space/?userid=595282&mhhw=20160915Bz7Uk.html
http://www.yqcq.gov.cn/e/space/?userid=595285&wdup=20160915Hz1Jn.html
http://www.yqcq.gov.cn/e/space/?userid=595290&vpwd=20160915Rk4Sn.html
http://www.yqcq.gov.cn/e/space/?userid=595295&pvar=20160915Lg3Xp.html
http://www.yqcq.gov.cn/e/space/?userid=595298&lvph=20160915Xr0Ec.html
http://www.yqcq.gov.cn/e/space/?userid=595304&prcq=20160915Uo9Is.html
http://www.yqcq.gov.cn/e/space/?userid=595308&zsln=20160915Us4Xf.html
http://www.yqcq.gov.cn/e/space/?userid=595310&czco=20160915Bn1Kc.html
http://www.yqcq.gov.cn/e/space/?userid=595315&dyfa=20160915Xa3Bf.html
http://www.yqcq.gov.cn/e/space/?userid=595319&eqyw=20160915Gf7Wa.html
http://www.yqcq.gov.cn/e/space/?userid=595322&jfaf=20160915Em4Yi.html
http://www.yqcq.gov.cn/e/space/?userid=595327&gvsz=20160915Gr5Pt.html
http://www.yqcq.gov.cn/e/space/?userid=595328&jvoa=20160915Jb7Ki.html
http://www.yqcq.gov.cn/e/space/?userid=595334&nnyr=20160915Gb9La.html
http://www.yqcq.gov.cn/e/space/?userid=595338&kvkq=20160915Bw1Ea.html
http://www.yqcq.gov.cn/e/space/?userid=595340&fyjg=20160915Jh1Vy.html
http://www.yqcq.gov.cn/e/space/?userid=595346&eawk=20160915Lq5Xo.html
http://www.yqcq.gov.cn/e/space/?userid=595348&ckon=20160915Hf2Hp.html
http://www.yqcq.gov.cn/e/space/?userid=595353&wsfy=20160915Qe7Eg.html
http://www.yqcq.gov.cn/e/space/?userid=595358&lpyw=20160915Vi8Db.html
http://www.yqcq.gov.cn/e/space/?userid=595361&jkna=20160915Aj4Hp.html
http://www.yqcq.gov.cn/e/space/?userid=595366&ulez=20160915Ed1Ve.html
http://www.yqcq.gov.cn/e/space/?userid=595371&ooap=20160915Uj8Zm.html
http://www.yqcq.gov.cn/e/space/?userid=595376&kwux=20160915Bd0Ic.html
http://www.yqcq.gov.cn/e/space/?userid=595382&xbiy=20160915Lb1Gv.html
http://www.yqcq.gov.cn/e/space/?userid=595384&jtmh=20160915Tx0Hq.html
http://www.yqcq.gov.cn/e/space/?userid=595389&qntv=20160915Ui4Qg.html
http://www.yqcq.gov.cn/e/space/?userid=595391&qjll=20160915If8Re.html
http://www.yqcq.gov.cn/e/space/?userid=595396&vwoy=20160915Wn7Mz.html
http://www.yqcq.gov.cn/e/space/?userid=595401&otxb=20160915Zr4Fl.html
http://www.yqcq.gov.cn/e/space/?userid=595404&vcxi=20160915Pp0Jt.html
http://www.yqcq.gov.cn/e/space/?userid=595409&wrvf=20160915Il2Qx.html
http://www.yqcq.gov.cn/e/space/?userid=595415&anqk=20160915Cm3Sg.html
http://www.yqcq.gov.cn/e/space/?userid=595417&oxsz=20160915Ui1Zw.html
http://www.yqcq.gov.cn/e/space/?userid=595421&etqh=20160915Jn7Xz.html
http://www.yqcq.gov.cn/e/space/?userid=595426&odqb=20160915Fa5Xp.html
http://www.yqcq.gov.cn/e/space/?userid=595428&jzxr=20160915Tn0Ov.html
http://www.yqcq.gov.cn/e/space/?userid=595433&xxyh=20160915Vw8Lx.html
http://www.yqcq.gov.cn/e/space/?userid=595436&khpr=20160915Zc9Dr.html
http://www.yqcq.gov.cn/e/space/?userid=595441&vnth=20160915Wp8Ru.html
http://www.yqcq.gov.cn/e/space/?userid=595447&xkyc=20160915Rv3Zc.html
http://www.yqcq.gov.cn/e/space/?userid=595449&fqdq=20160915Zu3Av.html
http://www.yqcq.gov.cn/e/space/?userid=595454&qknu=20160915Qh0Gf.html
http://www.yqcq.gov.cn/e/space/?userid=595459&ophu=20160915Pf2Mu.html
http://www.yqcq.gov.cn/e/space/?userid=595462&rmqm=20160915Yu7Mj.html
http://www.yqcq.gov.cn/e/space/?userid=595467&zrts=20160915Iw7Gi.html
http://www.yqcq.gov.cn/e/space/?userid=595472&bujt=20160915Rb4Zz.html
http://www.yqcq.gov.cn/e/space/?userid=595473&seel=20160915Tt8In.html
http://www.yqcq.gov.cn/e/space/?userid=595479&uyfp=20160915Ej1Em.html
http://www.yqcq.gov.cn/e/space/?userid=595484&wonz=20160915Zd0Um.html
http://www.yqcq.gov.cn/e/space/?userid=595490&wjlf=20160915Vj6Cv.html
http://www.yqcq.gov.cn/e/space/?userid=595492&edcc=20160915Wy6Tm.html
http://www.yqcq.gov.cn/e/space/?userid=595497&beax=20160915Sq0Uu.html
http://www.yqcq.gov.cn/e/space/?userid=595499&uxuq=20160915Xl6Kc.html
http://www.yqcq.gov.cn/e/space/?userid=595505&xtmz=20160915Jc5Eb.html
http://www.yqcq.gov.cn/e/space/?userid=595510&xpig=20160915Wu7Ld.html
http://www.yqcq.gov.cn/e/space/?userid=595512&jgtg=20160915Me3Fc.html
http://www.yqcq.gov.cn/e/space/?userid=595517&opip=20160915Wl2Me.html
http://www.yqcq.gov.cn/e/space/?userid=595519&iyls=20160915Dt5Au.html
http://www.yqcq.gov.cn/e/space/?userid=595524&hqww=20160915Sc5Zh.html
http://www.yqcq.gov.cn/e/space/?userid=595529&drfi=20160915Og3Zx.html
http://www.yqcq.gov.cn/e/space/?userid=595531&meev=20160915Rd7Wr.html
http://www.yqcq.gov.cn/e/space/?userid=595536&xsov=20160915Km2Aj.html
http://www.yqcq.gov.cn/e/space/?userid=595540&tenj=20160915Me3Sx.html
http://www.yqcq.gov.cn/e/space/?userid=595542&gnuo=20160915Sr5Qq.html
http://www.yqcq.gov.cn/e/space/?userid=595548&yezf=20160915Nq3Cb.html
http://www.yqcq.gov.cn/e/space/?userid=595551&lfmf=20160915Xg1Bc.html
http://www.yqcq.gov.cn/e/space/?userid=595556&iwbu=20160915Ix9Tn.html
http://www.yqcq.gov.cn/e/space/?userid=595560&mwds=20160915Oe8Ni.html
http://www.yqcq.gov.cn/e/space/?userid=595562&qslc=20160915Mc9Rj.html
http://www.yqcq.gov.cn/e/space/?userid=595567&znpf=20160915Pa4Ff.html
http://www.yqcq.gov.cn/e/space/?userid=595569&daqz=20160915Hg6Sr.html
http://www.yqcq.gov.cn/e/space/?userid=595575&rvzk=20160915Hi9Fs.html
http://www.yqcq.gov.cn/e/space/?userid=595579&qntt=20160915Nh0Ds.html
http://www.yqcq.gov.cn/e/space/?userid=595582&ugkh=20160915Ny1Sh.html
http://www.yqcq.gov.cn/e/space/?userid=595586&zllx=20160915Zj2Zq.html
http://www.yqcq.gov.cn/e/space/?userid=595591&llxb=20160915Dr3Xm.html
http://www.yqcq.gov.cn/e/space/?userid=595592&vpbm=20160915At9Lg.html
http://www.yqcq.gov.cn/e/space/?userid=595597&awmq=20160915Ka9Oq.html
http://www.yqcq.gov.cn/e/space/?userid=595599&nuar=20160915Et9Cq.html
http://www.yqcq.gov.cn/e/space/?userid=595604&ndii=20160915Dz6Bl.html
http://www.yqcq.gov.cn/e/space/?userid=595609&vglk=20160915Or8Xc.html
http://www.yqcq.gov.cn/e/space/?userid=595611&pndf=20160915Fd7Ry.html
http://www.yqcq.gov.cn/e/space/?userid=595617&wxmy=20160915Zm3Et.html
http://www.yqcq.gov.cn/e/space/?userid=595621&nrfu=20160915Vs6Xl.html
http://www.yqcq.gov.cn/e/space/?userid=595623&wdnc=20160915Kf2Dy.html
http://www.yqcq.gov.cn/e/space/?userid=595632&sjhy=20160915Yk7As.html
http://www.yqcq.gov.cn/e/space/?userid=595634&sehp=20160915Gp6Ev.html
http://www.yqcq.gov.cn/e/space/?userid=595641&ndss=20160915Oo3Wz.html
http://www.yqcq.gov.cn/e/space/?userid=595647&yjms=20160915Do4Lh.html
http://www.yqcq.gov.cn/e/space/?userid=595648&ahmx=20160915Wh7Ha.html
http://www.yqcq.gov.cn/e/space/?userid=595653&gkhe=20160915Ds9Vo.html
http://www.yqcq.gov.cn/e/space/?userid=595655&ocuy=20160915Yx3Oe.html
http://www.yqcq.gov.cn/e/space/?userid=595660&letx=20160915Mm2Fn.html
http://www.yqcq.gov.cn/e/space/?userid=595665&odye=20160915Eh3Bk.html
http://www.yqcq.gov.cn/e/space/?userid=595666&bqlo=20160915Xa1Se.html
http://www.yqcq.gov.cn/e/space/?userid=595672&azhl=20160915Tz8Ty.html
http://www.yqcq.gov.cn/e/space/?userid=595675&ronp=20160915Cz8Iv.html
http://www.yqcq.gov.cn/e/space/?userid=595679&xsul=20160915Hn0Pa.html
http://www.yqcq.gov.cn/e/space/?userid=595685&oeby=20160915Id7Ih.html
http://www.yqcq.gov.cn/e/space/?userid=595691&xdcp=20160915Gr3Xq.html
http://www.yqcq.gov.cn/e/space/?userid=595692&qunz=20160915Ct9Ae.html
http://www.yqcq.gov.cn/e/space/?userid=595698&bovn=20160915Iy7Dp.html
http://www.yqcq.gov.cn/e/space/?userid=595703&caur=20160915Gd7Ba.html
http://www.yqcq.gov.cn/e/space/?userid=595704&gvfv=20160915Vz3Sb.html
http://www.yqcq.gov.cn/e/space/?userid=595710&jzjk=20160915Mk0Fs.html
http://www.yqcq.gov.cn/e/space/?userid=595713&ldhc=20160915Nj5Ma.html
http://www.yqcq.gov.cn/e/space/?userid=595718&pdyd=20160915Mr6Px.html
http://www.yqcq.gov.cn/e/space/?userid=595722&ornf=20160915Mw9Qx.html
http://www.yqcq.gov.cn/e/space/?userid=595724&apcm=20160915Aa3Qs.html
http://www.yqcq.gov.cn/e/space/?userid=595729&ovno=20160915Zz3Bu.html
http://www.yqcq.gov.cn/e/space/?userid=595735&uwzj=20160915Cl7Ge.html
http://www.yqcq.gov.cn/e/space/?userid=595736&vfzz=20160915Do1Sd.html
http://www.yqcq.gov.cn/e/space/?userid=595741&fsns=20160915Qj7Zu.html
http://www.yqcq.gov.cn/e/space/?userid=595746&ahfg=20160915Ua2Hk.html
http://www.yqcq.gov.cn/e/space/?userid=595749&prua=20160915Sn0Vd.html
http://www.yqcq.gov.cn/e/space/?userid=595754&dgmh=20160915Qg9Iw.html
http://www.yqcq.gov.cn/e/space/?userid=595755&cdaf=20160915Jr6Gw.html
http://www.yqcq.gov.cn/e/space/?userid=595760&bnvu=20160915Ev8Hr.html
http://www.yqcq.gov.cn/e/space/?userid=595765&onbz=20160915Ry2Fa.html
http://www.yqcq.gov.cn/e/space/?userid=595766&etvo=20160915Po2Sa.html
http://www.yqcq.gov.cn/e/space/?userid=595771&jsyf=20160915Uk4Ob.html
http://www.yqcq.gov.cn/e/space/?userid=595776&kwna=20160915Ce5Fw.html
http://www.yqcq.gov.cn/e/space/?userid=595777&ocld=20160915Lz5Ht.html
http://www.yqcq.gov.cn/e/space/?userid=595782&ednp=20160915Qu9Xc.html
http://www.yqcq.gov.cn/e/space/?userid=595783&jdew=20160915Sm8Pi.html
http://www.yqcq.gov.cn/e/space/?userid=595789&cmjk=20160915Pm6Uq.html
http://www.yqcq.gov.cn/e/space/?userid=595791&cnso=20160915Up4Xq.html
http://www.yqcq.gov.cn/e/space/?userid=595796&smxf=20160915Es4Hs.html
http://www.yqcq.gov.cn/e/space/?userid=595801&yvwx=20160915Vv6Rh.html
http://www.yqcq.gov.cn/e/space/?userid=595803&eaft=20160915Pm1Vm.html
http://www.yqcq.gov.cn/e/space/?userid=595809&shkp=20160915Ha9Lu.html
http://www.yqcq.gov.cn/e/space/?userid=595815&skpk=20160915Ji0Iz.html
http://www.yqcq.gov.cn/e/space/?userid=595817&lvmm=20160915Pp7Cj.html
http://www.yqcq.gov.cn/e/space/?userid=595823&hmxd=20160915Hc4Rr.html
http://www.yqcq.gov.cn/e/space/?userid=595825&dsyt=20160915Lk5Ez.html
http://www.yqcq.gov.cn/e/space/?userid=595832&jimn=20160915Gs0As.html
http://www.yqcq.gov.cn/e/space/?userid=595838&ptvx=20160915Dq2Om.html
http://www.yqcq.gov.cn/e/space/?userid=595840&xfvw=20160915Ha0Hw.html
http://www.yqcq.gov.cn/e/space/?userid=595846&kgpp=20160915Gu6Jt.html
http://www.yqcq.gov.cn/e/space/?userid=595850&vman=20160915Oi8Va.html
http://www.yqcq.gov.cn/e/space/?userid=595852&kkmk=20160915Ox4Md.html
http://www.yqcq.gov.cn/e/space/?userid=595858&glln=20160915Sd6Nm.html
http://www.yqcq.gov.cn/e/space/?userid=595863&ernn=20160915Zn1Ig.html
http://www.yqcq.gov.cn/e/space/?userid=595866&musm=20160915Sb4Ku.html
http://www.yqcq.gov.cn/e/space/?userid=595871&gbdv=20160915Vf1Ra.html
http://www.yqcq.gov.cn/e/space/?userid=595876&jtcy=20160915Qw4As.html
http://www.yqcq.gov.cn/e/space/?userid=595878&kjwe=20160915Li7Qe.html
http://www.yqcq.gov.cn/e/space/?userid=595883&tbcu=20160915Pa1Vz.html
http://www.yqcq.gov.cn/e/space/?userid=595886&uhdy=20160915Bo6Dm.html
http://www.yqcq.gov.cn/e/space/?userid=595891&vxkv=20160915Sx4Rj.html
http://www.yqcq.gov.cn/e/space/?userid=595896&lckl=20160915Ha0Dq.html
http://www.yqcq.gov.cn/e/space/?userid=595898&mjxf=20160915Le8Yw.html
http://www.yqcq.gov.cn/e/space/?userid=595904&tshg=20160915Ut0Bn.html
http://www.yqcq.gov.cn/e/space/?userid=595908&afys=20160915Wh9Ei.html
http://www.yqcq.gov.cn/e/space/?userid=595911&iacd=20160915Be1Oo.html
http://www.yqcq.gov.cn/e/space/?userid=595916&vbmj=20160915Vq5Nr.html
http://www.yqcq.gov.cn/e/space/?userid=595921&babj=20160915Zh9Yu.html
http://www.yqcq.gov.cn/e/space/?userid=595923&wpwe=20160915Tg5Sy.html
http://www.yqcq.gov.cn/e/space/?userid=595928&qtlt=20160915Vd5Cl.html
http://www.yqcq.gov.cn/e/space/?userid=595933&ofwi=20160915Tz9Ma.html
http://www.yqcq.gov.cn/e/space/?userid=595935&phrn=20160915Ry2Lb.html
http://www.yqcq.gov.cn/e/space/?userid=595940&votr=20160915Vi2Xi.html
http://www.yqcq.gov.cn/e/space/?userid=595943&lbev=20160915Jf9Ow.html
http://www.yqcq.gov.cn/e/space/?userid=595947&kqwa=20160915Tx5Ab.html
http://www.yqcq.gov.cn/e/space/?userid=595952&znwf=20160915Al7Pq.html
http://www.yqcq.gov.cn/e/space/?userid=595956&pbxv=20160915Uq9Nn.html
http://www.yqcq.gov.cn/e/space/?userid=595960&woyq=20160915Kc6Xl.html
http://www.yqcq.gov.cn/e/space/?userid=595964&oyzg=20160915Vz3Br.html
http://www.yqcq.gov.cn/e/space/?userid=595968&vlnl=20160915Mc2Fe.html
http://www.yqcq.gov.cn/e/space/?userid=595969&mocn=20160915Rd7Ch.html
http://www.yqcq.gov.cn/e/space/?userid=595974&dicp=20160915Ur3Pk.html
http://www.yqcq.gov.cn/e/space/?userid=595975&iuwr=20160915Ft6Bj.html
http://www.yqcq.gov.cn/e/space/?userid=595981&gblb=20160915Is9Zq.html
http://www.yqcq.gov.cn/e/space/?userid=595987&mwgn=20160915Bi5Ai.html
http://www.yqcq.gov.cn/e/space/?userid=595988&scsp=20160915Yn5Dw.html
http://www.yqcq.gov.cn/e/space/?userid=595994&iurf=20160915Tg7Kc.html
http://www.yqcq.gov.cn/e/space/?userid=595999&uicp=20160915Ll6Pd.html
http://www.yqcq.gov.cn/e/space/?userid=596001&zalz=20160915Lx2Gg.html
http://www.yqcq.gov.cn/e/space/?userid=596006&ztak=20160915Kx7Sk.html
http://www.yqcq.gov.cn/e/space/?userid=596011&edfn=20160915Hr6Jm.html
http://www.yqcq.gov.cn/e/space/?userid=596014&upvd=20160915Cq5Kg.html
http://www.yqcq.gov.cn/e/space/?userid=596018&iisj=20160915Km5Yg.html
http://www.yqcq.gov.cn/e/space/?userid=596025&snct=20160915Ev8Sf.html
http://www.yqcq.gov.cn/e/space/?userid=596028&xfce=20160915Qd1Gn.html
http://www.yqcq.gov.cn/e/space/?userid=596032&yytu=20160915Er6Ir.html
http://www.yqcq.gov.cn/e/space/?userid=596038&yajz=20160915Ek0Hi.html
http://www.yqcq.gov.cn/e/space/?userid=596040&erhx=20160915Dp0Ub.html
http://www.yqcq.gov.cn/e/space/?userid=596045&htom=20160915Ad7Hn.html
http://www.yqcq.gov.cn/e/space/?userid=596050&dhqe=20160915Ph3Xh.html
http://www.yqcq.gov.cn/e/space/?userid=596052&smbu=20160915An1Vi.html
http://www.yqcq.gov.cn/e/space/?userid=596057&jlix=20160915Nq6Jg.html
http://www.yqcq.gov.cn/e/space/?userid=596063&goiq=20160915Ta5Gk.html
http://www.yqcq.gov.cn/e/space/?userid=596065&fqmn=20160915Fc4Yh.html
http://www.yqcq.gov.cn/e/space/?userid=596070&qmsz=20160915Ti4Db.html
http://www.yqcq.gov.cn/e/space/?userid=596075&cidi=20160915So5Ns.html
http://www.yqcq.gov.cn/e/space/?userid=596077&dtkf=20160915Ha1Nu.html
http://www.yqcq.gov.cn/e/space/?userid=596082&kwoj=20160915Pr4Ds.html
http://www.yqcq.gov.cn/e/space/?userid=596088&gstw=20160915Ou6Dh.html
http://www.yqcq.gov.cn/e/space/?userid=596089&kdus=20160915Wl9Br.html
http://www.yqcq.gov.cn/e/space/?userid=596095&yhmo=20160915It8Jp.html
http://www.yqcq.gov.cn/e/space/?userid=596100&jufo=20160915Mw5St.html
http://www.yqcq.gov.cn/e/space/?userid=596101&uisk=20160915Qx2Lu.html
http://www.yqcq.gov.cn/e/space/?userid=596107&ogwo=20160915Mw7Ic.html
http://www.yqcq.gov.cn/e/space/?userid=596108&efoo=20160915Jm5Yh.html
http://www.yqcq.gov.cn/e/space/?userid=596113&swxb=20160915Wr4Mv.html
http://www.yqcq.gov.cn/e/space/?userid=596118&vmxe=20160915Qj2Fr.html
http://www.yqcq.gov.cn/e/space/?userid=596119&epyh=20160915Vv1Dm.html
http://www.yqcq.gov.cn/e/space/?userid=596125&locj=20160915Wm2Gr.html
http://www.yqcq.gov.cn/e/space/?userid=596130&iljy=20160915Vc1Kn.html
http://www.yqcq.gov.cn/e/space/?userid=596132&mwor=20160915Hp4Tf.html
http://www.yqcq.gov.cn/e/space/?userid=596136&jdum=20160915Hd0Vc.html
http://www.yqcq.gov.cn/e/space/?userid=596142&dtrp=20160915Hp0Fi.html
http://www.yqcq.gov.cn/e/space/?userid=596145&iljj=20160915Tq3Bv.html
http://www.yqcq.gov.cn/e/space/?userid=596150&wzbc=20160915Fk9Mu.html
http://www.yqcq.gov.cn/e/space/?userid=596152&vxgi=20160915Mp3Cg.html
http://www.yqcq.gov.cn/e/space/?userid=596158&yhgh=20160915Cl6Ky.html
http://www.yqcq.gov.cn/e/space/?userid=596162&mgob=20160915Up0Ay.html
http://www.yqcq.gov.cn/e/space/?userid=596165&svwe=20160915Lk1Wo.html
http://www.yqcq.gov.cn/e/space/?userid=596169&gfen=20160915Mn4Dg.html
http://www.yqcq.gov.cn/e/space/?userid=596174&rxir=20160915Vh7Vn.html
http://www.yqcq.gov.cn/e/space/?userid=596177&upxy=20160915Wq4We.html
http://www.yqcq.gov.cn/e/space/?userid=596182&rjzf=20160915Km2Yz.html
http://www.yqcq.gov.cn/e/space/?userid=596184&rfes=20160915Ia0Pd.html
http://www.yqcq.gov.cn/e/space/?userid=596190&hcdh=20160915Sy6Uo.html
http://www.yqcq.gov.cn/e/space/?userid=596195&rxwg=20160915Nb7Vx.html
http://www.yqcq.gov.cn/e/space/?userid=596197&ufmf=20160915Ro5It.html
http://www.yqcq.gov.cn/e/space/?userid=596203&vijo=20160915Ks3Uq.html
http://www.yqcq.gov.cn/e/space/?userid=596207&zzqd=20160915Pt9Be.html
http://www.yqcq.gov.cn/e/space/?userid=596210&iggd=20160915Hc9Kh.html
http://www.yqcq.gov.cn/e/space/?userid=596216&zzfn=20160915Zs7Fl.html
http://www.yqcq.gov.cn/e/space/?userid=596221&mhyb=20160915Iu8Td.html
http://www.yqcq.gov.cn/e/space/?userid=596223&zhwy=20160915Jr6Wc.html
http://www.yqcq.gov.cn/e/space/?userid=596228&zezn=20160915Lb9Uy.html
http://www.yqcq.gov.cn/e/space/?userid=596234&lxbn=20160915Gd6Zl.html
http://www.yqcq.gov.cn/e/space/?userid=596236&imjg=20160915Dt1Tj.html
http://www.yqcq.gov.cn/e/space/?userid=596241&gjar=20160915Wp9Ad.html
http://www.yqcq.gov.cn/e/space/?userid=596244&jwuy=20160915Ye7Xl.html
http://www.yqcq.gov.cn/e/space/?userid=596248&gmem=20160915Pw4Yb.html
http://www.yqcq.gov.cn/e/space/?userid=596254&ecia=20160915Bp5Ms.html
http://www.yqcq.gov.cn/e/space/?userid=596257&zybd=20160915Wb7Dl.html
http://www.yqcq.gov.cn/e/space/?userid=596261&wgou=20160915Nx0Dw.html
http://www.yqcq.gov.cn/e/space/?userid=596265&fcui=20160915Ww9Nk.html
http://www.yqcq.gov.cn/e/space/?userid=596269&qpec=20160915Hh8Fs.html
http://www.yqcq.gov.cn/e/space/?userid=596275&edyl=20160915Lu4Ns.html
http://www.yqcq.gov.cn/e/space/?userid=596277&oepo=20160915Kk2Ky.html
http://www.yqcq.gov.cn/e/space/?userid=596282&bwvq=20160915Ex6Jt.html
http://www.yqcq.gov.cn/e/space/?userid=596287&vdod=20160915Jp6Dj.html
http://www.yqcq.gov.cn/e/space/?userid=596290&zder=20160915Ru7Kb.html
http://www.yqcq.gov.cn/e/space/?userid=596295&ixap=20160915Rb6Sa.html
http://www.yqcq.gov.cn/e/space/?userid=596300&aqjx=20160915Cf8Ao.html
http://www.yqcq.gov.cn/e/space/?userid=596302&evmc=20160915Nw2Ux.html
http://www.yqcq.gov.cn/e/space/?userid=596307&vjee=20160915Ln9Sl.html
http://www.yqcq.gov.cn/e/space/?userid=596312&gyjf=20160915Ck2Uf.html
http://www.yqcq.gov.cn/e/space/?userid=596314&byym=20160915Rp9Jb.html
http://www.yqcq.gov.cn/e/space/?userid=596319&ywcf=20160915Df5Gj.html
http://www.yqcq.gov.cn/e/space/?userid=596322&wslt=20160915Xm8Ss.html
http://www.yqcq.gov.cn/e/space/?userid=596326&vmdp=20160915Mh8Cs.html
http://www.yqcq.gov.cn/e/space/?userid=596332&hfal=20160915Th3Xw.html
http://www.yqcq.gov.cn/e/space/?userid=596335&pfyn=20160915Pz0El.html
http://www.yqcq.gov.cn/e/space/?userid=596339&uzei=20160915Mk9Ge.html
http://www.yqcq.gov.cn/e/space/?userid=596345&xjdf=20160915Cu4Al.html
http://www.yqcq.gov.cn/e/space/?userid=596348&qfne=20160915Lq8Nd.html
http://www.yqcq.gov.cn/e/space/?userid=596352&sont=20160915Gr6Nd.html
http://www.yqcq.gov.cn/e/space/?userid=596355&kgau=20160915Uf1Mb.html
http://www.yqcq.gov.cn/e/space/?userid=596358&rxhg=20160915Hm0Bn.html
http://www.yqcq.gov.cn/e/space/?userid=596364&llln=20160915Fl7Lj.html
http://www.yqcq.gov.cn/e/space/?userid=596367&nxac=20160915Pm7At.html
http://www.yqcq.gov.cn/e/space/?userid=596372&ywrc=20160915Gt2Ol.html
http://www.yqcq.gov.cn/e/space/?userid=596377&bmsy=20160915Sq4Pg.html
http://www.yqcq.gov.cn/e/space/?userid=596380&bwik=20160915Gi1On.html
http://www.yqcq.gov.cn/e/space/?userid=596384&wbqx=20160915Mf4Hb.html
http://www.yqcq.gov.cn/e/space/?userid=596390&cxep=20160915Zb4Jc.html
http://www.yqcq.gov.cn/e/space/?userid=596392&xhoj=20160915Wc8Sg.html
http://www.yqcq.gov.cn/e/space/?userid=596396&suwg=20160915Hv8Zx.html
http://www.yqcq.gov.cn/e/space/?userid=596398&elis=20160915Fj1Yv.html
http://www.yqcq.gov.cn/e/space/?userid=596404&johz=20160915Yy4Hk.html
http://www.yqcq.gov.cn/e/space/?userid=596409&uteg=20160915Yj2Lz.html
http://www.yqcq.gov.cn/e/space/?userid=596412&fuqa=20160915Bd4Zz.html
http://www.yqcq.gov.cn/e/space/?userid=596416&stds=20160915Pd1Ht.html
http://www.yqcq.gov.cn/e/space/?userid=596422&nkkd=20160915Po1Kn.html
http://www.yqcq.gov.cn/e/space/?userid=596424&ogjb=20160915Eu2Mh.html
http://www.yqcq.gov.cn/e/space/?userid=596429&dqqd=20160915Bh7Vt.html
http://www.yqcq.gov.cn/e/space/?userid=596431&slhq=20160915Uy8Dq.html
http://www.yqcq.gov.cn/e/space/?userid=596437&wnau=20160915Jl6Ue.html
http://www.yqcq.gov.cn/e/space/?userid=596443&ashy=20160915Fj1Hd.html
http://www.yqcq.gov.cn/e/space/?userid=596445&ujin=20160915Vb8Xi.html
http://www.yqcq.gov.cn/e/space/?userid=596450&wyco=20160915Gv3Ve.html
http://www.yqcq.gov.cn/e/space/?userid=596455&jccw=20160915Uw5Xg.html
http://www.yqcq.gov.cn/e/space/?userid=596457&gsvc=20160915Rp3Ct.html
http://www.yqcq.gov.cn/e/space/?userid=596462&sfsx=20160915Ps6Eo.html
http://www.yqcq.gov.cn/e/space/?userid=596465&dnqr=20160915Tx9Wj.html
http://www.yqcq.gov.cn/e/space/?userid=596469&ijcw=20160915Wt8Ya.html
http://www.yqcq.gov.cn/e/space/?userid=596474&bxvj=20160915Zx8Ho.html
http://www.yqcq.gov.cn/e/space/?userid=596475&hokl=20160915Qs1Bt.html
http://www.yqcq.gov.cn/e/space/?userid=596481&xuwe=20160915Kj7Ld.html
http://www.yqcq.gov.cn/e/space/?userid=596483&tjar=20160915Nz0Bo.html
http://www.yqcq.gov.cn/e/space/?userid=596488&gbcy=20160915An4Nd.html
http://www.yqcq.gov.cn/e/space/?userid=596493&ssws=20160915Wq3Pk.html
http://www.yqcq.gov.cn/e/space/?userid=596496&vjnc=20160915Qk6Ym.html
http://www.yqcq.gov.cn/e/space/?userid=596500&tybs=20160915Lp0Ko.html
http://www.yqcq.gov.cn/e/space/?userid=596507&sixy=20160915Gg0Wp.html
http://www.yqcq.gov.cn/e/space/?userid=596512&wvaq=20160915Ip8Lp.html
http://www.yqcq.gov.cn/e/space/?userid=596514&wrzg=20160915Mo9Ms.html
http://www.yqcq.gov.cn/e/space/?userid=596520&otvh=20160915Km5No.html
http://www.yqcq.gov.cn/e/space/?userid=596525&haye=20160915Mz5Mr.html
http://www.yqcq.gov.cn/e/space/?userid=596531&ibad=20160915Mu5Pf.html
http://www.yqcq.gov.cn/e/space/?userid=596533&rlgi=20160915Vy5Wr.html
http://www.yqcq.gov.cn/e/space/?userid=596539&oacp=20160915Tl3Rh.html
http://www.yqcq.gov.cn/e/space/?userid=596543&mijj=20160915Bg9Uq.html
http://www.yqcq.gov.cn/e/space/?userid=596546&qgwm=20160915Xq1Cg.html
http://www.yqcq.gov.cn/e/space/?userid=596551&oybr=20160915Ie8Ky.html
http://www.yqcq.gov.cn/e/space/?userid=596553&sbdf=20160915Kl6Ky.html
http://www.yqcq.gov.cn/e/space/?userid=596558&vbnx=20160915Dw6Ov.html
http://www.yqcq.gov.cn/e/space/?userid=596563&iyyo=20160915De6Rg.html
http://www.yqcq.gov.cn/e/space/?userid=596565&owae=20160915Az1Bh.html
http://www.yqcq.gov.cn/e/space/?userid=596569&gfqh=20160915Fu5Ya.html
http://www.yqcq.gov.cn/e/space/?userid=596574&awhp=20160915Nr7Iy.html
http://www.yqcq.gov.cn/e/space/?userid=596575&ebes=20160915Xu0Gp.html
http://www.yqcq.gov.cn/e/space/?userid=596581&nhzu=20160915Ge8Uc.html
http://www.yqcq.gov.cn/e/space/?userid=596583&qngc=20160915Gf7Pt.html
http://www.yqcq.gov.cn/e/space/?userid=596588&vpgj=20160915Wj7Ti.html
http://www.yqcq.gov.cn/e/space/?userid=596593&ljfq=20160915Zh6Ho.html
http://www.yqcq.gov.cn/e/space/?userid=596596&ncfk=20160915Ze2Ip.html
http://www.yqcq.gov.cn/e/space/?userid=596602&tkaz=20160915Ps5Tt.html
http://www.yqcq.gov.cn/e/space/?userid=596606&qoop=20160915Wg6Xq.html
http://www.yqcq.gov.cn/e/space/?userid=596609&uuxa=20160915Qw4He.html
http://www.yqcq.gov.cn/e/space/?userid=596614&bndl=20160915Qf3Ts.html
http://www.yqcq.gov.cn/e/space/?userid=596620&vsbj=20160915Ab5Fw.html
http://www.yqcq.gov.cn/e/space/?userid=596622&xrbm=20160915Gz9Ev.html
http://www.yqcq.gov.cn/e/space/?userid=596627&guaj=20160915Jf6Ea.html
http://www.yqcq.gov.cn/e/space/?userid=596630&qdrr=20160915Km8Qk.html
http://www.yqcq.gov.cn/e/space/?userid=596634&mpaa=20160915Zp3Vd.html
http://www.yqcq.gov.cn/e/space/?userid=596640&flpg=20160915Da0Tw.html
http://www.yqcq.gov.cn/e/space/?userid=596643&jtiv=20160915Gm9Ac.html
http://www.yqcq.gov.cn/e/space/?userid=596648&ixbn=20160915Of8Uh.html
http://www.yqcq.gov.cn/e/space/?userid=596653&vkqz=20160915Tz6Tl.html
http://www.yqcq.gov.cn/e/space/?userid=596656>af=20160915Ru6Uf.html
http://www.yqcq.gov.cn/e/space/?userid=596660&jjrx=20160915Ow5Sd.html
http://www.yqcq.gov.cn/e/space/?userid=596663&onmk=20160915Pp6Vd.html
http://www.yqcq.gov.cn/e/space/?userid=596668&dmyf=20160915Qh5Hi.html
http://www.yqcq.gov.cn/e/space/?userid=596674&gvav=20160915Qx6Vr.html
http://www.yqcq.gov.cn/e/space/?userid=596676&gynj=20160915Ry9Ks.html
http://www.yqcq.gov.cn/e/space/?userid=596681&svkw=20160915Iy1Ye.html
http://www.yqcq.gov.cn/e/space/?userid=596687&qqna=20160915Ql0Xr.html
http://www.yqcq.gov.cn/e/space/?userid=596688&hhsk=20160915Yl2Ar.html
http://www.yqcq.gov.cn/e/space/?userid=596694&hgyn=20160915Ik4Qx.html
http://www.yqcq.gov.cn/e/space/?userid=596699&tqlo=20160915Ih5Sm.html
http://www.yqcq.gov.cn/e/space/?userid=596702&tdpf=20160915Lo8Eh.html
http://www.yqcq.gov.cn/e/space/?userid=596708&dwpd=20160915Ak8Ha.html
http://www.yqcq.gov.cn/e/space/?userid=596709&ftsz=20160915Jz5Fi.html
http://www.yqcq.gov.cn/e/space/?userid=596716&pdwp=20160915Ge8Qr.html
http://www.yqcq.gov.cn/e/space/?userid=596722&telp=20160915Fo2Su.html
http://www.yqcq.gov.cn/e/space/?userid=596723&knzo=20160915Ys0Tp.html
http://www.yqcq.gov.cn/e/space/?userid=596728&bufz=20160915Xi1Yu.html
http://www.yqcq.gov.cn/e/space/?userid=596733&uetc=20160915Dj1Sb.html
http://www.yqcq.gov.cn/e/space/?userid=596735&vsjt=20160915Xk2Fp.html
http://www.yqcq.gov.cn/e/space/?userid=596741&wafb=20160915Kv4Ml.html
http://www.yqcq.gov.cn/e/space/?userid=596742&eryw=20160915Wo7Pn.html
http://www.yqcq.gov.cn/e/space/?userid=596748&ppao=20160915At2Fd.html
http://www.yqcq.gov.cn/e/space/?userid=596752&rmjs=20160915Hb9Ex.html
http://www.yqcq.gov.cn/e/space/?userid=596754&gbie=20160915Hr9Qj.html
http://www.yqcq.gov.cn/e/space/?userid=596760&rvxo=20160915Rk2Fz.html
http://www.yqcq.gov.cn/e/space/?userid=596764&ahwx=20160915Ay4Al.html
http://www.yqcq.gov.cn/e/space/?userid=596766&ftac=20160915Ts9Jk.html
http://www.yqcq.gov.cn/e/space/?userid=596773&kgcj=20160915Ym4Mk.html
http://www.yqcq.gov.cn/e/space/?userid=596777&luxp=20160915Qh1Jb.html
http://www.yqcq.gov.cn/e/space/?userid=596782&wdqc=20160915We7Bg.html
http://www.yqcq.gov.cn/e/space/?userid=596784&jerx=20160915Na0Il.html
http://www.yqcq.gov.cn/e/space/?userid=596788&aojz=20160915Bg5Og.html
http://www.yqcq.gov.cn/e/space/?userid=596793&mumy=20160915Fx3Ct.html
http://www.yqcq.gov.cn/e/space/?userid=596794&dliq=20160915Zi8Pb.html
http://www.yqcq.gov.cn/e/space/?userid=596799&iuzf=20160915Pe4Zn.html
http://www.yqcq.gov.cn/e/space/?userid=596802&gium=20160915Bb5Uk.html
http://www.yqcq.gov.cn/e/space/?userid=596807&srxj=20160915Nx4Zd.html
http://www.yqcq.gov.cn/e/space/?userid=596812&ykiy=20160915Cs7Jh.html
http://www.yqcq.gov.cn/e/space/?userid=596818&evrr=20160915Ng6Cy.html
http://www.yqcq.gov.cn/e/space/?userid=596819&whom=20160915Vp6Dv.html
http://www.yqcq.gov.cn/e/space/?userid=596825&ocsy=20160915Ln2Uu.html
http://www.yqcq.gov.cn/e/space/?userid=596827&sgzl=20160915Om9Wz.html
http://www.yqcq.gov.cn/e/space/?userid=596832&mvsz=20160915Bv9Zx.html
http://www.yqcq.gov.cn/e/space/?userid=596837&ejnv=20160915Ya0Vs.html
http://www.yqcq.gov.cn/e/space/?userid=596839&vzrz=20160915Ek9Ky.html
http://www.yqcq.gov.cn/e/space/?userid=596845&mqll=20160915It7Wd.html
http://www.yqcq.gov.cn/e/space/?userid=596849&ytvn=20160915Fn2Cl.html
http://www.yqcq.gov.cn/e/space/?userid=596852&weor=20160915Mk5Ke.html
http://www.yqcq.gov.cn/e/space/?userid=596857&wviw=20160915Vf8Wh.html
http://www.yqcq.gov.cn/e/space/?userid=596859&pxid=20160915Qs6My.html
http://www.yqcq.gov.cn/e/space/?userid=596864&sfys=20160915Ae2Og.html
http://www.yqcq.gov.cn/e/space/?userid=596869&hzmb=20160915Xv9Sz.html
http://www.yqcq.gov.cn/e/space/?userid=596871&cqhg=20160915Ya4Bw.html
http://www.yqcq.gov.cn/e/space/?userid=596878&npjy=20160915Ky6Re.html
http://www.yqcq.gov.cn/e/space/?userid=596882&nzte=20160915Cl9Mq.html
http://www.yqcq.gov.cn/e/space/?userid=596886&toxf=20160915Bz0Pc.html
http://www.yqcq.gov.cn/e/space/?userid=596891&hxno=20160915Wb3Ml.html
http://www.yqcq.gov.cn/e/space/?userid=596893&zcpx=20160915Yc8Dl.html
http://www.yqcq.gov.cn/e/space/?userid=596898&tihl=20160915Xp8Yb.html
http://www.yqcq.gov.cn/e/space/?userid=596904&ejqx=20160915Ta8Ca.html
http://www.yqcq.gov.cn/e/space/?userid=596906&tsjq=20160915Id1Xs.html
http://www.yqcq.gov.cn/e/space/?userid=596911&yqea=20160915Nj2Lx.html
http://www.yqcq.gov.cn/e/space/?userid=596915&iiwl=20160915Fo2Nu.html
http://www.yqcq.gov.cn/e/space/?userid=596918&dbmc=20160915Qk3De.html
http://www.yqcq.gov.cn/e/space/?userid=596923&xvte=20160915Nv7Lo.html
http://www.yqcq.gov.cn/e/space/?userid=596928&dniu=20160915Vk3Ai.html
http://www.yqcq.gov.cn/e/space/?userid=596930&opjv=20160915Km5Bv.html
http://www.yqcq.gov.cn/e/space/?userid=596934&kvxy=20160915Xw9Th.html
http://www.yqcq.gov.cn/e/space/?userid=596935&iykc=20160915Ub6Xz.html
http://www.yqcq.gov.cn/e/space/?userid=596941&pbnq=20160915Sm1Fn.html
http://www.yqcq.gov.cn/e/space/?userid=596946&swfk=20160915Pg8Zk.html
http://www.yqcq.gov.cn/e/space/?userid=596949&kvzr=20160915Du8Ea.html
http://www.yqcq.gov.cn/e/space/?userid=596954&xwem=20160915Sk6Wl.html
http://www.yqcq.gov.cn/e/space/?userid=596959&tykp=20160915Nm7Bu.html
http://www.yqcq.gov.cn/e/space/?userid=596960&zhdv=20160915Wy2Oo.html
http://www.yqcq.gov.cn/e/space/?userid=596966&dbfv=20160915Rh8Om.html
http://www.yqcq.gov.cn/e/space/?userid=596971&jlbl=20160915Ci3Qh.html
http://www.yqcq.gov.cn/e/space/?userid=596973&oqwa=20160915Zf7Ga.html
http://www.yqcq.gov.cn/e/space/?userid=596979&fngi=20160915Vv3Ag.html
http://www.yqcq.gov.cn/e/space/?userid=596980&egye=20160915Op0An.html
http://www.yqcq.gov.cn/e/space/?userid=596986&lkqz=20160915Kf9Ef.html
http://www.yqcq.gov.cn/e/space/?userid=596992&cvaz=20160915Qw7Eu.html
http://www.yqcq.gov.cn/e/space/?userid=596993&eeji=20160915Ti1Si.html
http://www.yqcq.gov.cn/e/space/?userid=596998&dmwm=20160915Ai0Ni.html
http://www.yqcq.gov.cn/e/space/?userid=597004&cveo=20160915Hs1Jt.html
http://www.yqcq.gov.cn/e/space/?userid=597005&ozxr=20160915Xk0Xu.html
http://www.yqcq.gov.cn/e/space/?userid=597011&udjq=20160915Tw5Bt.html
http://www.yqcq.gov.cn/e/space/?userid=597013&kgiu=20160915Fs2Jj.html
http://www.yqcq.gov.cn/e/space/?userid=597018&q=20160915Ps6Se.html
http://www.yqcq.gov.cn/e/space/?userid=597023&xswz=20160915Pe1Eq.html
http://www.yqcq.gov.cn/e/space/?userid=597024&zyhp=20160915As8Ni.html
http://www.yqcq.gov.cn/e/space/?userid=597030&bvls=20160915Cc6Fq.html
http://www.yqcq.gov.cn/e/space/?userid=597031&hpto=20160915Gw3Qm.html
http://www.yqcq.gov.cn/e/space/?userid=597036&wzbc=20160915Zk8Jl.html
http://www.yqcq.gov.cn/e/space/?userid=597041&mcam=20160915Dh6Em.html
http://www.yqcq.gov.cn/e/space/?userid=597044&kztc=20160915Im2Wr.html
http://www.yqcq.gov.cn/e/space/?userid=597050&pwnz=20160915Ec9Nb.html
http://www.yqcq.gov.cn/e/space/?userid=597055&inco=20160915Ns1Ow.html
http://www.yqcq.gov.cn/e/space/?userid=597059&ooqd=20160915If0Rd.html
http://www.yqcq.gov.cn/e/space/?userid=597064&osit=20160915Mr4Yy.html
http://www.yqcq.gov.cn/e/space/?userid=597066&btio=20160915Dg5Gk.html
http://www.yqcq.gov.cn/e/space/?userid=597072&bctk=20160915Rv3Gb.html
http://www.yqcq.gov.cn/e/space/?userid=597077&bioi=20160915Cd9Sj.html
http://www.yqcq.gov.cn/e/space/?userid=597082&vwxy=20160915Nt0Fi.html
http://www.yqcq.gov.cn/e/space/?userid=597085&macd=20160915Qv6Go.html
http://www.yqcq.gov.cn/e/space/?userid=597090&axjj=20160915Zx6Ur.html
http://www.yqcq.gov.cn/e/space/?userid=597092&rbce=20160915Jf1Xe.html
http://www.yqcq.gov.cn/e/space/?userid=597097&dybk=20160915Th0Tr.html
http://www.yqcq.gov.cn/e/space/?userid=597101&bzwx=20160915Vp3Av.html
http://www.yqcq.gov.cn/e/space/?userid=597104&gadk=20160915Au6Zw.html
http://www.yqcq.gov.cn/e/space/?userid=597109&uron=20160915Fx5Sx.html
http://www.yqcq.gov.cn/e/space/?userid=597114&ktjb=20160915Sj2Oy.html
http://www.yqcq.gov.cn/e/space/?userid=597117&wwsg=20160915Zx9Ea.html
http://www.yqcq.gov.cn/e/space/?userid=597123&gmhq=20160915Pl0Wu.html
http://www.yqcq.gov.cn/e/space/?userid=597128&jxbb=20160915Kq0Xt.html
http://www.yqcq.gov.cn/e/space/?userid=597130&gnrv=20160915Zv9He.html
http://www.yqcq.gov.cn/e/space/?userid=597136&orjl=20160915Hy0Ro.html
http://www.yqcq.gov.cn/e/space/?userid=597141&dyhd=20160915Yu0Dw.html
http://www.yqcq.gov.cn/e/space/?userid=597144&posm=20160915Sh2Mv.html
http://www.yqcq.gov.cn/e/space/?userid=597149&idfx=20160915Tr9Pq.html
http://www.yqcq.gov.cn/e/space/?userid=597152&oijw=20160915Ag7Gi.html
http://www.yqcq.gov.cn/e/space/?userid=597157&okug=20160915Vd3Zo.html
http://www.yqcq.gov.cn/e/space/?userid=597162&pfwj=20160915Aa9Wo.html
http://www.yqcq.gov.cn/e/space/?userid=597165&ibwk=20160915Jm7Oj.html
http://www.yqcq.gov.cn/e/space/?userid=597170&iptr=20160915Vj0Au.html
http://www.yqcq.gov.cn/e/space/?userid=597172&cgbq=20160915Kf8Tz.html
http://www.yqcq.gov.cn/e/space/?userid=597177&zlgn=20160915Ux2Od.html
http://www.yqcq.gov.cn/e/space/?userid=597182&vtbx=20160915Em2Ju.html
http://www.yqcq.gov.cn/e/space/?userid=597184&gavh=20160915Oy7Sq.html
http://www.yqcq.gov.cn/e/space/?userid=597189&ajwk=20160915Py4Bv.html
http://www.yqcq.gov.cn/e/space/?userid=597195&ofyj=20160915Gb4Dn.html
http://www.yqcq.gov.cn/e/space/?userid=597196&haxd=20160915Bs8Tn.html
http://www.yqcq.gov.cn/e/space/?userid=597202&fhrj=20160915Si7Ke.html
http://www.yqcq.gov.cn/e/space/?userid=597208&savh=20160915Lj4Iv.html
http://www.yqcq.gov.cn/e/space/?userid=597209&jggw=20160915Wx5Pm.html
http://www.yqcq.gov.cn/e/space/?userid=597215&hlgl=20160915Fi1Ml.html
http://www.yqcq.gov.cn/e/space/?userid=597216&ritx=20160915Oj4Rj.html
http://www.yqcq.gov.cn/e/space/?userid=597222&dzcx=20160915Jj3Dy.html
http://www.yqcq.gov.cn/e/space/?userid=597227&avjw=20160915Wj8Fi.html
http://www.yqcq.gov.cn/e/space/?userid=597228&uknn=20160915We3Er.html
http://www.yqcq.gov.cn/e/space/?userid=597234&oivc=20160915Tc2Ej.html
http://www.yqcq.gov.cn/e/space/?userid=597240&eitr=20160915Fm7Of.html
http://www.yqcq.gov.cn/e/space/?userid=597242&bhxy=20160915Gr4Lq.html
http://www.yqcq.gov.cn/e/space/?userid=597247&gbdm=20160915Qe6Sw.html
http://www.yqcq.gov.cn/e/space/?userid=597253&ajqt=20160915Ab0Sv.html
http://www.yqcq.gov.cn/e/space/?userid=597255&csfo=20160915Hr1Lw.html
http://www.yqcq.gov.cn/e/space/?userid=597260&trnl=20160915Ms7Rf.html
http://www.yqcq.gov.cn/e/space/?userid=597265&oddk=20160915Li5Yp.html
http://www.yqcq.gov.cn/e/space/?userid=597268&syum=20160915Iu7Hn.html
http://www.yqcq.gov.cn/e/space/?userid=597274&osbk=20160915Jy1Mo.html
http://www.yqcq.gov.cn/e/space/?userid=597275&ceif=20160915Pm5He.html
http://www.yqcq.gov.cn/e/space/?userid=597281&kyub=20160915Gg7Xo.html
http://www.yqcq.gov.cn/e/space/?userid=597286&dfon=20160915Uc9Gj.html
http://www.yqcq.gov.cn/e/space/?userid=597288&ggdc=20160915Ci6Jt.html
http://www.yqcq.gov.cn/e/space/?userid=597293&klwn=20160915Bw7Qk.html
http://www.yqcq.gov.cn/e/space/?userid=597295&drjm=20160915Ki4Jq.html
http://www.yqcq.gov.cn/e/space/?userid=597300&lusq=20160915Mw4Kw.html
http://www.yqcq.gov.cn/e/space/?userid=597306>fm=20160915Wc8An.html
http://www.yqcq.gov.cn/e/space/?userid=597307&pzeq=20160915Kt0Gb.html
http://www.yqcq.gov.cn/e/space/?userid=597313&xhxb=20160915Ag8Qp.html
http://www.yqcq.gov.cn/e/space/?userid=597319&vtxc=20160915Jx8Ku.html
http://www.yqcq.gov.cn/e/space/?userid=597321&znyi=20160915Lz4Re.html
http://www.yqcq.gov.cn/e/space/?userid=597326&yfey=20160915Sk1Hf.html
http://www.yqcq.gov.cn/e/space/?userid=597332&maps=20160915Ia5Uq.html
http://www.yqcq.gov.cn/e/space/?userid=597334&krlx=20160915En4Tl.html
http://www.yqcq.gov.cn/e/space/?userid=597339&xgtq=20160915Us5Ps.html
http://www.yqcq.gov.cn/e/space/?userid=597341&kely=20160915Dy8Vz.html
http://www.yqcq.gov.cn/e/space/?userid=597347&kygl=20160915Fy8Bt.html
http://www.yqcq.gov.cn/e/space/?userid=597352&kgml=20160915Eo5Fh.html
http://www.yqcq.gov.cn/e/space/?userid=597355&vzqo=20160915Fl6Hb.html
http://www.yqcq.gov.cn/e/space/?userid=597360&mdlj=20160915Nc0Rc.html
http://www.yqcq.gov.cn/e/space/?userid=597362&fkzy=20160915Qs1Ke.html
http://www.yqcq.gov.cn/e/space/?userid=597368&exez=20160915Oh6Fz.html
http://www.yqcq.gov.cn/e/space/?userid=597373&ttdf=20160915Bf2Bi.html
http://www.yqcq.gov.cn/e/space/?userid=597376&folk=20160915Eo6Bv.html
http://www.yqcq.gov.cn/e/space/?userid=597380&uwdt=20160915Hc8Va.html
http://www.yqcq.gov.cn/e/space/?userid=597386&xyts=20160915Do0Cu.html
http://www.yqcq.gov.cn/e/space/?userid=597389&cjel=20160915Eo6Ax.html
http://www.yqcq.gov.cn/e/space/?userid=597393&ukzg=20160915Fi3Yr.html
http://www.yqcq.gov.cn/e/space/?userid=597399&pidt=20160915Ka5Wh.html
http://www.yqcq.gov.cn/e/space/?userid=597400&fknb=20160915Cw4Rq.html
http://www.yqcq.gov.cn/e/space/?userid=597406&olyo=20160915Yf5Jd.html
http://www.yqcq.gov.cn/e/space/?userid=597407&chkj=20160915Ol8Bt.html
http://www.yqcq.gov.cn/e/space/?userid=597413&gzim=20160915Ko2Ye.html
http://www.yqcq.gov.cn/e/space/?userid=597418&lpmp=20160915Pg0At.html
http://www.yqcq.gov.cn/e/space/?userid=597420&tnsi=20160915Xx1Tl.html
http://www.yqcq.gov.cn/e/space/?userid=597426&hwco=20160915Bi8Bc.html
http://www.yqcq.gov.cn/e/space/?userid=597432&jspy=20160915Hi7Zb.html
http://www.yqcq.gov.cn/e/space/?userid=597434&sqfv=20160915Fe4Gl.html
http://www.yqcq.gov.cn/e/space/?userid=597439&uojg=20160915Mh4Ig.html
http://www.yqcq.gov.cn/e/space/?userid=597445&eaeb=20160915Ux0Uw.html
http://www.yqcq.gov.cn/e/space/?userid=597446&wjru=20160915Xx4Hv.html
http://www.yqcq.gov.cn/e/space/?userid=597452&gwek=20160915Jk3Ja.html
http://www.yqcq.gov.cn/e/space/?userid=597458&ypec=20160915Pc1Dj.html
http://www.yqcq.gov.cn/e/space/?userid=597460&gmkj=20160915Xg3Sn.html
http://www.yqcq.gov.cn/e/space/?userid=597465&zejj=20160915Ob4At.html
http://www.yqcq.gov.cn/e/space/?userid=597467&gpac=20160915Wr4Tr.html
http://www.yqcq.gov.cn/e/space/?userid=597472&kuih=20160915Ob0No.html
http://www.yqcq.gov.cn/e/space/?userid=597478&jkyr=20160915Dg1Hf.html
http://www.yqcq.gov.cn/e/space/?userid=597480&isne=20160915Dj5Fr.html
http://www.yqcq.gov.cn/e/space/?userid=597486&rwzj=20160915No8Yt.html
http://www.yqcq.gov.cn/e/space/?userid=597491&ffjk=20160915Yl6Kq.html
http://www.yqcq.gov.cn/e/space/?userid=597492&nzpm=20160915Gk0Pt.html
http://www.yqcq.gov.cn/e/space/?userid=597498&kcga=20160915Rz2Tf.html
http://www.yqcq.gov.cn/e/space/?userid=597499&noiw=20160915Qt6Xe.html
http://www.yqcq.gov.cn/e/space/?userid=597504&bdzu=20160915Rx4Rj.html
http://www.yqcq.gov.cn/e/space/?userid=597509&bbkj=20160915Gp1Ea.html
http://www.yqcq.gov.cn/e/space/?userid=597511&zwha=20160915Oh7Vs.html
http://www.yqcq.gov.cn/e/space/?userid=597517&kdbf=20160915Eh7La.html
http://www.yqcq.gov.cn/e/space/?userid=597522&prqj=20160915Cb3Tk.html
http://www.yqcq.gov.cn/e/space/?userid=597523&zjyi=20160915Dc1Qr.html
http://www.yqcq.gov.cn/e/space/?userid=597528&feru=20160915Vz5Zq.html
http://www.yqcq.gov.cn/e/space/?userid=597533&kfeu=20160915Aq5Nv.html
http://www.yqcq.gov.cn/e/space/?userid=597539&fjzs=20160915Vg0Am.html
http://www.yqcq.gov.cn/e/space/?userid=597544&rvak=20160915Fw4Aw.html
http://www.yqcq.gov.cn/e/space/?userid=597545&ihub=20160915Lc4Kg.html
http://www.yqcq.gov.cn/e/space/?userid=597550&konj=20160915Fd8Ky.html
http://www.yqcq.gov.cn/e/space/?userid=597555&ajvo=20160915Yy0Jw.html
http://www.yqcq.gov.cn/e/space/?userid=597557&qcur=20160915Ob9Ri.html
http://www.yqcq.gov.cn/e/space/?userid=597562&yomz=20160915Gi0Kb.html
http://www.yqcq.gov.cn/e/space/?userid=597564&aykv=20160915Cv8Xy.html
http://www.yqcq.gov.cn/e/space/?userid=597569&bgot=20160915Mm4Nz.html
http://www.yqcq.gov.cn/e/space/?userid=597574&tuee=20160915Ys8Bo.html
http://www.yqcq.gov.cn/e/space/?userid=597576&whwa=20160915Tm1Rm.html
http://www.yqcq.gov.cn/e/space/?userid=597582&ubrn=20160915Ol0Ys.html
http://www.yqcq.gov.cn/e/space/?userid=597584&frgd=20160915Dh7Br.html
http://www.yqcq.gov.cn/e/space/?userid=597589&wrfu=20160915Cz8Jc.html
http://www.yqcq.gov.cn/e/space/?userid=597595&suty=20160915Jg1Em.html
http://www.yqcq.gov.cn/e/space/?userid=597597&bosr=20160915Oq5Ki.html
http://www.yqcq.gov.cn/e/space/?userid=597602&glyx=20160915Vm8Gx.html
http://www.yqcq.gov.cn/e/space/?userid=597607&qmrm=20160915Sf0Xu.html
http://www.yqcq.gov.cn/e/space/?userid=597610&ikgx=20160915Gr2Fn.html
http://www.yqcq.gov.cn/e/space/?userid=597615&sqwa=20160915Rp3Yh.html
http://www.yqcq.gov.cn/e/space/?userid=597617&xusv=20160915Ri7Yn.html
http://www.yqcq.gov.cn/e/space/?userid=597621&gpft=20160915Gk0En.html
http://www.yqcq.gov.cn/e/space/?userid=597627ðq=20160915Zd2Ow.html
http://www.yqcq.gov.cn/e/space/?userid=597628&pzxs=20160915Bq8Rs.html
http://www.yqcq.gov.cn/e/space/?userid=597634&uicb=20160915De1Gf.html
http://www.yqcq.gov.cn/e/space/?userid=597640&zmgr=20160915Yk6Ix.html
http://www.yqcq.gov.cn/e/space/?userid=597641&steg=20160915Vv7Sc.html
http://www.yqcq.gov.cn/e/space/?userid=597647&preu=20160915Jc3Er.html
http://www.yqcq.gov.cn/e/space/?userid=597652&omjk=20160915Da6Mh.html
http://www.yqcq.gov.cn/e/space/?userid=597655&swdd=20160915Ut9Gy.html
http://www.yqcq.gov.cn/e/space/?userid=597660&irqc=20160915Yr9Ha.html
http://www.yqcq.gov.cn/e/space/?userid=597665&vsdj=20160915Ci6Pm.html
http://www.yqcq.gov.cn/e/space/?userid=597667&giie=20160915Uf0Ft.html
http://www.yqcq.gov.cn/e/space/?userid=597673&icln=20160915Al8Ce.html
http://www.yqcq.gov.cn/e/space/?userid=597676&ggsu=20160915Jo5Xv.html
http://www.yqcq.gov.cn/e/space/?userid=597681&igzf=20160915Py3Bk.html
http://www.yqcq.gov.cn/e/space/?userid=597686&xbhp=20160915Cx6Iw.html
http://www.yqcq.gov.cn/e/space/?userid=597689&ollq=20160915Kk2Li.html
http://www.yqcq.gov.cn/e/space/?userid=597695&bqyd=20160915Hs1Hs.html
http://www.yqcq.gov.cn/e/space/?userid=597699&icei=20160915Di5Vx.html
http://www.yqcq.gov.cn/e/space/?userid=597702&ccws=20160915Pv3Ii.html
http://www.yqcq.gov.cn/e/space/?userid=597706&oyqo=20160915Re6Sb.html
http://www.yqcq.gov.cn/e/space/?userid=597712&vdtr=20160915Gv1Vy.html
http://www.yqcq.gov.cn/e/space/?userid=597715&evyk=20160915Iv8Pb.html
http://www.yqcq.gov.cn/e/space/?userid=597719&fbqu=20160915Wd4Wg.html
http://www.yqcq.gov.cn/e/space/?userid=597722&iitj=20160915Lp7Kn.html
http://www.yqcq.gov.cn/e/space/?userid=597727&vgis=20160915Bb3Mr.html
http://www.yqcq.gov.cn/e/space/?userid=597732&dbve=20160915Hy5Me.html
http://www.yqcq.gov.cn/e/space/?userid=597734&latf=20160915Lw2Qr.html
http://www.yqcq.gov.cn/e/space/?userid=597740&sttp=20160915Cv0Fj.html
http://www.yqcq.gov.cn/e/space/?userid=597745&oulm=20160915Ha1Da.html
http://www.yqcq.gov.cn/e/space/?userid=597747&pixs=20160915Bn9Xh.html
http://www.yqcq.gov.cn/e/space/?userid=597751&jgvo=20160915Ga8Tx.html
http://www.yqcq.gov.cn/e/space/?userid=597757&nzxz=20160915Sa8Qc.html
http://www.yqcq.gov.cn/e/space/?userid=597760&ttki=20160915Ug7Dw.html
http://www.yqcq.gov.cn/e/space/?userid=597764&iaig=20160915Nf3Vl.html
http://www.yqcq.gov.cn/e/space/?userid=597767&iwxe=20160915Qr7Pc.html
http://www.yqcq.gov.cn/e/space/?userid=597772&nbdu=20160915Dk3Sk.html
http://www.yqcq.gov.cn/e/space/?userid=597778&dfsa=20160915Jm5Mc.html
http://www.yqcq.gov.cn/e/space/?userid=597780&jhef=20160915On2Hf.html
http://www.yqcq.gov.cn/e/space/?userid=597785&vyby=20160915Dc5Zl.html
http://www.yqcq.gov.cn/e/space/?userid=597790&mewn=20160915Ka6Cs.html
http://www.yqcq.gov.cn/e/space/?userid=597791&uvym=20160915Kx5Ud.html
http://www.yqcq.gov.cn/e/space/?userid=597796&vlal=20160915Bc7Hs.html
http://www.yqcq.gov.cn/e/space/?userid=597799&zerj=20160915Rl8Mn.html
http://www.yqcq.gov.cn/e/space/?userid=597803&fimu=20160915Ho4Vp.html
http://www.yqcq.gov.cn/e/space/?userid=597809&fesm=20160915Ul3Dw.html
http://www.yqcq.gov.cn/e/space/?userid=597810&vtoc=20160915Xh3Aq.html
http://www.yqcq.gov.cn/e/space/?userid=597816&jrww=20160915Lw7Tr.html
http://www.yqcq.gov.cn/e/space/?userid=597822&xdny=20160915Nl6Vl.html
http://www.yqcq.gov.cn/e/space/?userid=597824&gmfi=20160915Qa4Gb.html
http://www.yqcq.gov.cn/e/space/?userid=597830&qfpq=20160915Up3Rl.html
http://www.yqcq.gov.cn/e/space/?userid=597831&zmtv=20160915Zk0Rd.html
http://www.yqcq.gov.cn/e/space/?userid=597838&asua=20160915Nz8Fr.html
http://www.yqcq.gov.cn/e/space/?userid=597844&znyp=20160915Qa4Hh.html
http://www.yqcq.gov.cn/e/space/?userid=597846&yycl=20160915Ts8Bw.html
http://www.yqcq.gov.cn/e/space/?userid=597851&qnan=20160915Hn2St.html
http://www.yqcq.gov.cn/e/space/?userid=597857&bkwy=20160915Vl2Dm.html
http://www.yqcq.gov.cn/e/space/?userid=597859&yotp=20160915Xp4Ah.html
http://www.yqcq.gov.cn/e/space/?userid=597865&ckli=20160915Kl6Bb.html
http://www.yqcq.gov.cn/e/space/?userid=597870&tllr=20160915Ed2Dr.html
http://www.yqcq.gov.cn/e/space/?userid=597873&beav=20160915Vf1Nw.html
http://www.yqcq.gov.cn/e/space/?userid=597879&pvjm=20160915Ud2Gg.html
http://www.yqcq.gov.cn/e/space/?userid=597884&ecau=20160915Hx5Ih.html
http://www.yqcq.gov.cn/e/space/?userid=597887&xctb=20160915Ul3It.html
http://www.yqcq.gov.cn/e/space/?userid=597892&taty=20160915Wh2Wc.html
http://www.yqcq.gov.cn/e/space/?userid=597898&iutz=20160915Uu5Vf.html
http://www.yqcq.gov.cn/e/space/?userid=597901&bcvs=20160915Ko1Mm.html
http://www.yqcq.gov.cn/e/space/?userid=597906&jhue=20160915Ry2Eo.html
http://www.yqcq.gov.cn/e/space/?userid=597910&lkhw=20160915Tp7Qf.html
http://www.yqcq.gov.cn/e/space/?userid=597913&vgne=20160915Ll9Tv.html
http://www.yqcq.gov.cn/e/space/?userid=597919&knia=20160915Ja5Ys.html
http://www.yqcq.gov.cn/e/space/?userid=597922&bhwt=20160915Ep2Ms.html
http://www.yqcq.gov.cn/e/space/?userid=597927&lxgy=20160915Uv9Jz.html
http://www.yqcq.gov.cn/e/space/?userid=597932&vsnq=20160915Gj0Mb.html
http://www.yqcq.gov.cn/e/space/?userid=597935&tvxx=20160915Po6Rc.html
http://www.yqcq.gov.cn/e/space/?userid=597939&demb=20160915Xw0Xj.html
http://www.yqcq.gov.cn/e/space/?userid=597945&tchs=20160915Mn3Dl.html
http://www.yqcq.gov.cn/e/space/?userid=597948&seia=20160915Aw6An.html
http://www.yqcq.gov.cn/e/space/?userid=597953&xvoi=20160915Ug8Ds.html
http://www.yqcq.gov.cn/e/space/?userid=597959&umzj=20160915Dr4Wv.html
http://www.yqcq.gov.cn/e/space/?userid=597962&emwu=20160915Ln7Mq.html
http://www.yqcq.gov.cn/e/space/?userid=597967&sxxt=20160915Jo9Yk.html
http://www.yqcq.gov.cn/e/space/?userid=597974&wbyj=20160915Rd3Xi.html
http://www.yqcq.gov.cn/e/space/?userid=597976&ajpg=20160915Sj7Jq.html
http://www.yqcq.gov.cn/e/space/?userid=597982&pjsi=20160915Jn9Na.html
http://www.yqcq.gov.cn/e/space/?userid=597987&dxas=20160915Xn5Cf.html
http://www.yqcq.gov.cn/e/space/?userid=597991&twmf=20160915Va4Sf.html
http://www.yqcq.gov.cn/e/space/?userid=597996&ozgq=20160915Mv5Ty.html
http://www.yqcq.gov.cn/e/space/?userid=597999&egax=20160915Np0Ag.html
http://www.yqcq.gov.cn/e/space/?userid=598004&ncwl=20160915Pp2Ij.html
http://www.yqcq.gov.cn/e/space/?userid=598010&fmmt=20160915Rz6Nt.html
http://www.yqcq.gov.cn/e/space/?userid=598014&vwuq=20160915Mw9Xf.html
http://www.yqcq.gov.cn/e/space/?userid=598019&dhhx=20160915Dx1Zy.html
http://www.yqcq.gov.cn/e/space/?userid=598025&rxwv=20160915Se7Nf.html
http://www.yqcq.gov.cn/e/space/?userid=598027&dype=20160915Un1Dj.html
http://www.yqcq.gov.cn/e/space/?userid=598033&rogj=20160915Ax9Tn.html
http://www.yqcq.gov.cn/e/space/?userid=598039&czqm=20160915Gh2Ed.html
http://www.yqcq.gov.cn/e/space/?userid=598040&vvig=20160915Pn0Fh.html
http://www.yqcq.gov.cn/e/space/?userid=598046&ayde=20160915Ky9Sp.html
http://www.yqcq.gov.cn/e/space/?userid=598052&zlfd=20160915Yq6Uv.html
http://www.yqcq.gov.cn/e/space/?userid=598054&fmej=20160915Js2Zo.html
http://www.yqcq.gov.cn/e/space/?userid=598059&bgvi=20160915Ta2Ws.html
http://www.yqcq.gov.cn/e/space/?userid=598061&ykah=20160915Gw4Lr.html
http://www.yqcq.gov.cn/e/space/?userid=598067&pben=20160915Ct7Rh.html
http://www.yqcq.gov.cn/e/space/?userid=598073&rzco=20160915Yi2Rb.html
http://www.yqcq.gov.cn/e/space/?userid=598075&zioa=20160915Ao1Hm.html
http://www.yqcq.gov.cn/e/space/?userid=598081&dqsn=20160915Mc5Dy.html
http://www.yqcq.gov.cn/e/space/?userid=598086&nswy=20160915Xv3Sd.html
http://www.yqcq.gov.cn/e/space/?userid=598089&bujl=20160915Fk1Gh.html
http://www.yqcq.gov.cn/e/space/?userid=598094&jwwk=20160915Jf0Gl.html
http://www.yqcq.gov.cn/e/space/?userid=598096&eyjw=20160915Qd6Bt.html
http://www.yqcq.gov.cn/e/space/?userid=598102&gqsn=20160915Jz3Uw.html
http://www.yqcq.gov.cn/e/space/?userid=598108&bcag=20160915Tq7Qn.html
http://www.yqcq.gov.cn/e/space/?userid=598112&rygk=20160915Io1Bo.html
http://www.yqcq.gov.cn/e/space/?userid=598116&suhx=20160915Fu3Gr.html
http://www.yqcq.gov.cn/e/space/?userid=598122&jyep=20160915Ik6Ek.html
http://www.yqcq.gov.cn/e/space/?userid=598125&txaa=20160915Dt4Fc.html
http://www.yqcq.gov.cn/e/space/?userid=598130&xfoy=20160915Sl8Zu.html
http://www.yqcq.gov.cn/e/space/?userid=598135&xaac=20160915Qf0Yx.html
http://www.yqcq.gov.cn/e/space/?userid=598138&rxiz=20160915Zq1Lc.html
http://www.yqcq.gov.cn/e/space/?userid=598143&vslo=20160915Rs5Lc.html
http://www.yqcq.gov.cn/e/space/?userid=598146&owyo=20160915Sp3Ez.html
http://www.yqcq.gov.cn/e/space/?userid=598150&wsal=20160915Lu1Gz.html
http://www.yqcq.gov.cn/e/space/?userid=598156&lngv=20160915Vl6Kc.html
http://www.yqcq.gov.cn/e/space/?userid=598159&lumt=20160915Gs0Xg.html
http://www.yqcq.gov.cn/e/space/?userid=598166&yjgt=20160915Cg8Ir.html
http://www.yqcq.gov.cn/e/space/?userid=598172&cuhf=20160915Rg3Vr.html
http://www.yqcq.gov.cn/e/space/?userid=598175&pnje=20160915Ei3Xv.html
http://www.yqcq.gov.cn/e/space/?userid=598180&aotk=20160915Ua8Bn.html
http://www.yqcq.gov.cn/e/space/?userid=598185&larx=20160915Vf0Jv.html
http://www.yqcq.gov.cn/e/space/?userid=598188&wkoe=20160915Gf5Qp.html
http://www.yqcq.gov.cn/e/space/?userid=598194&wvol=20160915Yr5It.html
http://www.yqcq.gov.cn/e/space/?userid=598196&hwqv=20160915Lb0Zl.html
http://www.yqcq.gov.cn/e/space/?userid=598201&hxpi=20160915Vc3Vj.html
http://www.yqcq.gov.cn/e/space/?userid=598206&ycpg=20160915No4Xg.html
http://www.yqcq.gov.cn/e/space/?userid=598209&fkta=20160915Rw4Du.html
http://www.yqcq.gov.cn/e/space/?userid=598214&azqf=20160915Rt8Ww.html
http://www.yqcq.gov.cn/e/space/?userid=598221&mjtq=20160915Bg2Pu.html
http://www.yqcq.gov.cn/e/space/?userid=598222&jqen=20160915Ss8Lw.html
http://www.yqcq.gov.cn/e/space/?userid=598228&btmm=20160915Fm5Zb.html
http://www.yqcq.gov.cn/e/space/?userid=598233&zhov=20160915Qg3Kf.html
http://www.yqcq.gov.cn/e/space/?userid=598236&ahod=20160915Sz9Vr.html
http://www.yqcq.gov.cn/e/space/?userid=598242&oopc=20160915Vb6Vp.html
http://www.yqcq.gov.cn/e/space/?userid=598246&lkuk=20160915Vt3Ya.html
http://www.yqcq.gov.cn/e/space/?userid=598249&bfdv=20160915Xd2Dj.html
http://www.yqcq.gov.cn/e/space/?userid=598254&jnwu=20160915Xs5Fw.html
http://www.yqcq.gov.cn/e/space/?userid=598258&lmhd=20160915Vb2Ua.html
http://www.yqcq.gov.cn/e/space/?userid=598264&izfr=20160915Wt9Gg.html
http://www.yqcq.gov.cn/e/space/?userid=598268&ywuw=20160915Ad3Vn.html
http://www.yqcq.gov.cn/e/space/?userid=598271&ewev=20160915Zv4Ua.html
http://www.yqcq.gov.cn/e/space/?userid=598277&tmla=20160915Of2Nd.html
http://www.yqcq.gov.cn/e/space/?userid=598282&kfco=20160915Md4Ib.html
http://www.yqcq.gov.cn/e/space/?userid=599422&zlkv=20160915Tp6Bu.html
http://www.yqcq.gov.cn/e/space/?userid=599423&avkn=20160915Zz5Me.html
http://www.yqcq.gov.cn/e/space/?userid=599429&hkem=20160915Og7Hu.html
http://www.yqcq.gov.cn/e/space/?userid=599434&uimm=20160915Lm8Wz.html
http://www.yqcq.gov.cn/e/space/?userid=599436&prrl=20160915Tp3Ad.html
http://www.yqcq.gov.cn/e/space/?userid=599441&hcse=20160915Dw2Nw.html
http://www.yqcq.gov.cn/e/space/?userid=599443&nuxf=20160915Yp6Ca.html
http://www.yqcq.gov.cn/e/space/?userid=599449&erld=20160915Yd5Lt.html
http://www.yqcq.gov.cn/e/space/?userid=599455&bhhn=20160915Cv0Ib.html
http://www.yqcq.gov.cn/e/space/?userid=599457&ozbc=20160915Re3Ix.html
http://www.yqcq.gov.cn/e/space/?userid=599462&dxsw=20160915Xw0Xd.html
http://www.yqcq.gov.cn/e/space/?userid=599464&ntap=20160915Mz3Xf.html
http://www.yqcq.gov.cn/e/space/?userid=599469&rhsl=20160915Ir2Gy.html
http://www.yqcq.gov.cn/e/space/?userid=599475&antq=20160915Cg0Ge.html
http://www.yqcq.gov.cn/e/space/?userid=599477&kcdq=20160915Kv0Jy.html
http://www.yqcq.gov.cn/e/space/?userid=599484&lgou=20160915Fq7Jl.html
http://www.yqcq.gov.cn/e/space/?userid=599485&tzka=20160915Iq5Bl.html
http://www.yqcq.gov.cn/e/space/?userid=599490&xisi=20160915Hm2Dk.html
http://www.yqcq.gov.cn/e/space/?userid=599492&hqrd=20160915Yj1Ez.html
http://www.yqcq.gov.cn/e/space/?userid=599498&rjhq=20160915Ne4Om.html
http://www.yqcq.gov.cn/e/space/?userid=599503&xiwg=20160915Ij5Xl.html
http://www.yqcq.gov.cn/e/space/?userid=599506&zpby=20160915Tu5Vp.html
http://www.yqcq.gov.cn/e/space/?userid=599510&ljkd=20160915Rm7Uh.html
http://www.yqcq.gov.cn/e/space/?userid=599513&kkuh=20160915Gl8Af.html
http://www.yqcq.gov.cn/e/space/?userid=599518&fgcw=20160915Nt3Zh.html
http://www.yqcq.gov.cn/e/space/?userid=599524&lhch=20160915Ln8Tw.html
http://www.yqcq.gov.cn/e/space/?userid=599527&iuwp=20160915Zy5Np.html
http://www.yqcq.gov.cn/e/space/?userid=599533&cfiq=20160915Gx6Se.html
http://www.yqcq.gov.cn/e/space/?userid=599536&unpt=20160915Jf7Po.html
http://www.yqcq.gov.cn/e/space/?userid=599540&jcrc=20160915Iw8Ff.html
http://www.yqcq.gov.cn/e/space/?userid=599546&vsdk=20160915Pl8Sx.html
http://www.yqcq.gov.cn/e/space/?userid=599548&jmnu=20160915Ff3Qf.html
http://www.yqcq.gov.cn/e/space/?userid=599554&ayov=20160915Ud5Nl.html
http://www.yqcq.gov.cn/e/space/?userid=599556&wbdk=20160915Hx5Ij.html
http://www.yqcq.gov.cn/e/space/?userid=599561&cazk=20160915Cu2Et.html
http://www.yqcq.gov.cn/e/space/?userid=599567&cpvx=20160915Xq8Cq.html
http://www.yqcq.gov.cn/e/space/?userid=599568&cdge=20160915Ty0Et.html
http://www.yqcq.gov.cn/e/space/?userid=599574&cwpg=20160915Wt9Pl.html
http://www.yqcq.gov.cn/e/space/?userid=599576&srsl=20160915Sx0Hb.html
http://www.yqcq.gov.cn/e/space/?userid=599582&wmpx=20160915Ks0Fu.html
http://www.yqcq.gov.cn/e/space/?userid=599588&kiox=20160915It4So.html
http://www.yqcq.gov.cn/e/space/?userid=599589&npll=20160915Us5Mj.html
http://www.yqcq.gov.cn/e/space/?userid=599597&xwsa=20160915Wc4Lb.html
http://www.yqcq.gov.cn/e/space/?userid=599602&ocng=20160915Gk8Ck.html
http://www.yqcq.gov.cn/e/space/?userid=599604&rflf=20160915Es3Tn.html
http://www.yqcq.gov.cn/e/space/?userid=599609&splo=20160915Jj3Dv.html
http://www.yqcq.gov.cn/e/space/?userid=599611&osuk=20160915Nz7Qk.html
http://www.yqcq.gov.cn/e/space/?userid=599616&eopz=20160915Id9Bl.html
http://www.yqcq.gov.cn/e/space/?userid=599618&hxwg=20160915Zw6Eo.html
http://www.yqcq.gov.cn/e/space/?userid=599624&nnvq=20160915Dk3Ta.html
http://www.yqcq.gov.cn/e/space/?userid=599629&ovsr=20160915Vi6Yp.html
http://www.yqcq.gov.cn/e/space/?userid=599632&tafo=20160915Eq8Pe.html
http://www.yqcq.gov.cn/e/space/?userid=599638&zyaz=20160915Xr8Nc.html
http://www.yqcq.gov.cn/e/space/?userid=599640&drfo=20160915Nf1Ul.html
http://www.yqcq.gov.cn/e/space/?userid=599645&epob=20160915Ym7Fe.html
http://www.yqcq.gov.cn/e/space/?userid=599651&glgy=20160915Bw1Jo.html
http://www.yqcq.gov.cn/e/space/?userid=599653&wwnr=20160915Xb7Ub.html
http://www.yqcq.gov.cn/e/space/?userid=599658&ggko=20160915Sm7Qm.html
http://www.yqcq.gov.cn/e/space/?userid=599660&sbux=20160915Ff3Tq.html
http://www.yqcq.gov.cn/e/space/?userid=599666&rhjz=20160915Er1Rb.html
http://www.yqcq.gov.cn/e/space/?userid=599671&gied=20160915Rs4Ma.html
http://www.yqcq.gov.cn/e/space/?userid=599674&xleo=20160915Zw7Sm.html
http://www.yqcq.gov.cn/e/space/?userid=599680&lqwr=20160915Dv3Qj.html
http://www.yqcq.gov.cn/e/space/?userid=599682&kpyp=20160915Jc9Lz.html
http://www.yqcq.gov.cn/e/space/?userid=599687&dqks=20160915Ye8Li.html
http://www.yqcq.gov.cn/e/space/?userid=599693&mjdd=20160915Bs5Ho.html
http://www.yqcq.gov.cn/e/space/?userid=599695&hctv=20160915Od4Ys.html
http://www.yqcq.gov.cn/e/space/?userid=599700&yjmu=20160915Me4Pf.html
http://www.yqcq.gov.cn/e/space/?userid=599702&wuph=20160915Mi6Xu.html
http://www.yqcq.gov.cn/e/space/?userid=599708&pwwf=20160915Uj4Jt.html
http://www.yqcq.gov.cn/e/space/?userid=599713&nqlk=20160915Br4Nw.html
http://www.yqcq.gov.cn/e/space/?userid=599715&oxyb=20160915Jd9Pc.html
http://www.yqcq.gov.cn/e/space/?userid=599721&qsjq=20160915Pk8Pt.html
http://www.yqcq.gov.cn/e/space/?userid=599724&zpqs=20160915Mt6Jb.html
http://www.yqcq.gov.cn/e/space/?userid=599730&xppz=20160915To4Zb.html
http://www.yqcq.gov.cn/e/space/?userid=599735&ecua=20160915Gl0Jj.html
http://www.yqcq.gov.cn/e/space/?userid=599737&foxo=20160915St8Ws.html
http://www.yqcq.gov.cn/e/space/?userid=599743&wpvv=20160915Az4Ju.html
http://www.yqcq.gov.cn/e/space/?userid=599746&qvhi=20160915Yd5Xd.html
http://www.yqcq.gov.cn/e/space/?userid=599750&tuvf=20160915Fk8Pd.html
http://www.yqcq.gov.cn/e/space/?userid=599756&slxm=20160915Md4Pv.html
http://www.yqcq.gov.cn/e/space/?userid=599758&nllk=20160915Oq9Xx.html
http://www.yqcq.gov.cn/e/space/?userid=599764&ebax=20160915Cr9Ud.html
http://www.yqcq.gov.cn/e/space/?userid=599766&azai=20160915Ci4Qt.html
http://www.yqcq.gov.cn/e/space/?userid=599772&zbky=20160915Th9Bp.html
http://www.yqcq.gov.cn/e/space/?userid=599778&qocf=20160915Bi6Gl.html
http://www.yqcq.gov.cn/e/space/?userid=599781&hgbb=20160915Rv2Ua.html
http://www.yqcq.gov.cn/e/space/?userid=599785&ptje=20160915Qe9Xk.html
http://www.yqcq.gov.cn/e/space/?userid=599788&pzjw=20160915Th9Nk.html
http://www.yqcq.gov.cn/e/space/?userid=599794&dgch=20160915Sa2Og.html
http://www.yqcq.gov.cn/e/space/?userid=599800&aboh=20160915Vp3Xs.html
http://www.yqcq.gov.cn/e/space/?userid=599803&wtwd=20160915Vf2Dl.html
http://www.yqcq.gov.cn/e/space/?userid=599808&onfj=20160915Yf6Id.html
http://www.yqcq.gov.cn/e/space/?userid=599811&ngso=20160915Gx9Kx.html
http://www.yqcq.gov.cn/e/space/?userid=599816&klot=20160915Gi2Ph.html
http://www.yqcq.gov.cn/e/space/?userid=599818&unja=20160915Yv8Zz.html
http://www.yqcq.gov.cn/e/space/?userid=599824&zvji=20160915Hd7Xi.html
http://www.yqcq.gov.cn/e/space/?userid=599829&sldo=20160915Uo6Lp.html
http://www.yqcq.gov.cn/e/space/?userid=599831&ckjl=20160915Mw9Rx.html
http://www.yqcq.gov.cn/e/space/?userid=599836&yozh=20160915Ul0Qi.html
http://www.yqcq.gov.cn/e/space/?userid=599839&igdp=20160915Bl8Fu.html
http://www.yqcq.gov.cn/e/space/?userid=599843&ugxq=20160915Tg9Ls.html
http://www.yqcq.gov.cn/e/space/?userid=599850&nkyu=20160915Nh4Pn.html
http://www.yqcq.gov.cn/e/space/?userid=599853&pnca=20160915Le2Bc.html
http://www.yqcq.gov.cn/e/space/?userid=599858<ww=20160915Ru2Is.html
http://www.yqcq.gov.cn/e/space/?userid=599860&szkc=20160915Yl0Ao.html
http://www.yqcq.gov.cn/e/space/?userid=599866&tqfd=20160915La4Sr.html
http://www.yqcq.gov.cn/e/space/?userid=599871&jzwz=20160915Dj3Go.html
http://www.yqcq.gov.cn/e/space/?userid=599874&qzmq=20160915Mc7Gh.html
http://www.yqcq.gov.cn/e/space/?userid=599879&vzyl=20160915Ge3Pc.html
http://www.yqcq.gov.cn/e/space/?userid=599881&nwok=20160915Nx6Gd.html
http://www.yqcq.gov.cn/e/space/?userid=599887&mkwg=20160915Un4Mn.html
http://www.yqcq.gov.cn/e/space/?userid=599891&bipe=20160915Fg5Ie.html
http://www.yqcq.gov.cn/e/space/?userid=599895&xobw=20160915Kq4Gz.html
http://www.yqcq.gov.cn/e/space/?userid=599902&pcud=20160915Za2Vz.html
http://www.yqcq.gov.cn/e/space/?userid=599904&turt=20160915Gy0Zy.html
http://www.yqcq.gov.cn/e/space/?userid=599909&zaza=20160915Qs7Tu.html
http://www.yqcq.gov.cn/e/space/?userid=599914&oqen=20160915Xx3Wp.html
http://www.yqcq.gov.cn/e/space/?userid=599917&aedd=20160915Wj3Vv.html
http://www.yqcq.gov.cn/e/space/?userid=599923&bnll=20160915Sj4To.html
http://www.yqcq.gov.cn/e/space/?userid=599925&swsb=20160915Bd3Gm.html
http://www.yqcq.gov.cn/e/space/?userid=599931&njgd=20160915Fg6Ol.html
http://www.yqcq.gov.cn/e/space/?userid=599935&ahia=20160915Ri0Dl.html
http://www.yqcq.gov.cn/e/space/?userid=599938&vhnp=20160915Pl4Ic.html
http://www.yqcq.gov.cn/e/space/?userid=599944&buby=20160915Hl3La.html
http://www.yqcq.gov.cn/e/space/?userid=599946&iyti=20160915Bk8Hu.html
http://www.yqcq.gov.cn/e/space/?userid=599952&yqlz=20160915Ew7Bz.html
http://www.yqcq.gov.cn/e/space/?userid=599958&tekd=20160915Fq8Cg.html
http://www.yqcq.gov.cn/e/space/?userid=599960&omon=20160915Oc1Up.html
http://www.yqcq.gov.cn/e/space/?userid=599965&hkbj=20160915Tx1Ce.html
http://www.yqcq.gov.cn/e/space/?userid=599968&hmbf=20160915Wl3Vr.html
http://www.yqcq.gov.cn/e/space/?userid=599973&jkrn=20160915Gm5Zm.html
http://www.yqcq.gov.cn/e/space/?userid=599978&avgy=20160915Ei6Qx.html
http://www.yqcq.gov.cn/e/space/?userid=599980&vqgx=20160915Pe9Gg.html
http://www.yqcq.gov.cn/e/space/?userid=599986&emcp=20160915Sn5Xp.html
http://www.yqcq.gov.cn/e/space/?userid=599990&gyin=20160915Sr1My.html
http://www.yqcq.gov.cn/e/space/?userid=599994&vdan=20160915Qb7Lj.html
http://www.yqcq.gov.cn/e/space/?userid=599998&unxp=20160915Ky8Lt.html
http://www.yqcq.gov.cn/e/space/?userid=600003&omue=20160915Oe7Ka.html
http://www.yqcq.gov.cn/e/space/?userid=600008&zrcp=20160915Av9Pr.html
http://www.yqcq.gov.cn/e/space/?userid=600011&xcph=20160915Cw0Vt.html
http://www.yqcq.gov.cn/e/space/?userid=600016&buyi=20160915Xm6Xp.html
http://www.yqcq.gov.cn/e/space/?userid=600018&kbmr=20160915Ym5Cu.html
http://www.yqcq.gov.cn/e/space/?userid=600024&xjig=20160915Ub4Vc.html
http://www.yqcq.gov.cn/e/space/?userid=600028&yxix=20160915Xn3Ps.html
http://www.yqcq.gov.cn/e/space/?userid=600031&wfbz=20160915Dn8Be.html
http://www.yqcq.gov.cn/e/space/?userid=600037&bmoc=20160915Bo1Oc.html
http://www.yqcq.gov.cn/e/space/?userid=600038&mtop=20160915Al4Bx.html
http://www.yqcq.gov.cn/e/space/?userid=600044&gbuu=20160915Yr2Xn.html
http://www.yqcq.gov.cn/e/space/?userid=600049&jzpd=20160915Nl6Ct.html
http://www.yqcq.gov.cn/e/space/?userid=600052&edxj=20160915Kk0Oq.html
http://www.yqcq.gov.cn/e/space/?userid=600057&gbvw=20160915It2Fs.html
http://www.yqcq.gov.cn/e/space/?userid=600060&phga=20160915Rb5Ed.html
http://www.yqcq.gov.cn/e/space/?userid=600065&bzss=20160915Mk2Sh.html
http://www.yqcq.gov.cn/e/space/?userid=600071&xnal=20160915Si0Gx.html
http://www.yqcq.gov.cn/e/space/?userid=600074&ysxb=20160915Us6Kc.html
http://www.yqcq.gov.cn/e/space/?userid=600078&lccr=20160915St3Ap.html
http://www.yqcq.gov.cn/e/space/?userid=600081&uybn=20160915Fh4Ba.html
http://www.yqcq.gov.cn/e/space/?userid=600086&nrbd=20160915Vs3Kn.html
http://www.yqcq.gov.cn/e/space/?userid=600093&xtbu=20160915Yo4If.html
http://www.yqcq.gov.cn/e/space/?userid=600096&nzxm=20160915Xu9Sa.html
http://www.yqcq.gov.cn/e/space/?userid=600100&xrqc=20160915Ag4Rl.html
http://www.yqcq.gov.cn/e/space/?userid=600102&uckp=20160915Pn0Wc.html
http://www.yqcq.gov.cn/e/space/?userid=600108&scen=20160915Cn7Nt.html
http://www.yqcq.gov.cn/e/space/?userid=600114&rnqw=20160915Gd1Mh.html
http://www.yqcq.gov.cn/e/space/?userid=600116&kwhe=20160915Mz6Vh.html
http://www.yqcq.gov.cn/e/space/?userid=600122&ikmf=20160915Pb2Od.html
http://www.yqcq.gov.cn/e/space/?userid=600124&rsak=20160915Tk0Lr.html
http://www.yqcq.gov.cn/e/space/?userid=600130&cmob=20160915Gf1Xm.html
http://www.yqcq.gov.cn/e/space/?userid=600135&hyql=20160915Yk4Ay.html
http://www.yqcq.gov.cn/e/space/?userid=600138&mowu=20160915Qm1Dt.html
http://www.yqcq.gov.cn/e/space/?userid=600144&atqq=20160915Dv2Qo.html
http://www.yqcq.gov.cn/e/space/?userid=600146&coou=20160915Ut9Qq.html
http://www.yqcq.gov.cn/e/space/?userid=600152&pkyk=20160915Ek1Xq.html
http://www.yqcq.gov.cn/e/space/?userid=600157&bvwn=20160915Jb0Qc.html
http://www.yqcq.gov.cn/e/space/?userid=600159&ayfh=20160915Fs4Gg.html
http://www.yqcq.gov.cn/e/space/?userid=600165&kkuw=20160915Sj5Kp.html
http://www.yqcq.gov.cn/e/space/?userid=600167&dwyj=20160915Zo5Ms.html
http://www.yqcq.gov.cn/e/space/?userid=600173&azfu=20160915Qn0Rl.html
http://www.yqcq.gov.cn/e/space/?userid=600179&eivi=20160915Tl2Ub.html
http://www.yqcq.gov.cn/e/space/?userid=600181&egpa=20160915Le4Lp.html
http://www.yqcq.gov.cn/e/space/?userid=600187&lrvf=20160915Dv8Xp.html
http://www.yqcq.gov.cn/e/space/?userid=600189&orbj=20160915Ec4Aj.html
http://www.yqcq.gov.cn/e/space/?userid=600195&rfbv=20160915Sq1Ch.html
http://www.yqcq.gov.cn/e/space/?userid=600200&eucj=20160915Hb1Of.html
http://www.yqcq.gov.cn/e/space/?userid=600203&heoz=20160915Xo2Jk.html
http://www.yqcq.gov.cn/e/space/?userid=600208&wgua=20160915Ov6Xs.html
http://www.yqcq.gov.cn/e/space/?userid=600210&rqia=20160915Ca6Pn.html
http://www.yqcq.gov.cn/e/space/?userid=600216&skam=20160915Sp0Ti.html
http://www.yqcq.gov.cn/e/space/?userid=600221&iyuk=20160915Wr1Cf.html
http://www.yqcq.gov.cn/e/space/?userid=600224&zjqw=20160915Na9Ud.html
http://www.yqcq.gov.cn/e/space/?userid=600230&mgoz=20160915Jf6Gi.html
http://www.yqcq.gov.cn/e/space/?userid=600232&opol=20160915Jp3Pj.html
http://www.yqcq.gov.cn/e/space/?userid=600238&soql=20160915Dt5Uc.html
http://www.yqcq.gov.cn/e/space/?userid=600242&rung=20160915Wj6Vu.html
http://www.yqcq.gov.cn/e/space/?userid=600244&jqcv=20160915Bx2Uy.html
http://www.yqcq.gov.cn/e/space/?userid=600249&aijx=20160915Uf4Jl.html
http://www.yqcq.gov.cn/e/space/?userid=600251&ryod=20160915Gv3Um.html
http://www.yqcq.gov.cn/e/space/?userid=600257&nogi=20160915Ar9An.html
http://www.yqcq.gov.cn/e/space/?userid=600262&fblc=20160915Ah1Kt.html
http://www.yqcq.gov.cn/e/space/?userid=600264&gdok=20160915Xi6Ih.html
http://www.yqcq.gov.cn/e/space/?userid=600269&axzx=20160915Mz9Ba.html
http://www.yqcq.gov.cn/e/space/?userid=600272&bkrr=20160915Zq9Cm.html
http://www.yqcq.gov.cn/e/space/?userid=600277&ibfn=20160915Or3Nf.html
http://www.yqcq.gov.cn/e/space/?userid=600283&lbux=20160915Xf2Vc.html
http://www.yqcq.gov.cn/e/space/?userid=600286&pwcy=20160915Vs8Bj.html
http://www.yqcq.gov.cn/e/space/?userid=600291&saay=20160915Cq6Oj.html
http://www.yqcq.gov.cn/e/space/?userid=600294&rhlc=20160915Jb5Gb.html
http://www.yqcq.gov.cn/e/space/?userid=600299&lejn=20160915Jo5Pa.html
http://www.yqcq.gov.cn/e/space/?userid=600305&kofq=20160915Kl9Ex.html
http://www.yqcq.gov.cn/e/space/?userid=600307&ilzi=20160915Gv5Am.html
http://www.yqcq.gov.cn/e/space/?userid=600313&jvga=20160915Ai5Zc.html
http://www.yqcq.gov.cn/e/space/?userid=600314&bvki=20160915Or3Rp.html
http://www.yqcq.gov.cn/e/space/?userid=600320&ociu=20160915Nt9Zp.html
http://www.yqcq.gov.cn/e/space/?userid=600327&coko=20160915Wt1It.html
http://www.yqcq.gov.cn/e/space/?userid=600329&axed=20160915Hi7Yc.html
http://www.yqcq.gov.cn/e/space/?userid=600334&nlwo=20160915Bp3Cw.html
http://www.yqcq.gov.cn/e/space/?userid=600339&gbae=20160915Tg7Ns.html
http://www.yqcq.gov.cn/e/space/?userid=600342&rigz=20160915Ub4Af.html
http://www.yqcq.gov.cn/e/space/?userid=600348&kocx=20160915Nr1Bd.html
http://www.yqcq.gov.cn/e/space/?userid=600350&okwo=20160915Ra0Xt.html
http://www.yqcq.gov.cn/e/space/?userid=600354&qrlx=20160915Vz3Cp.html
http://www.yqcq.gov.cn/e/space/?userid=600360&eotd=20160915Ub5Hh.html
http://www.yqcq.gov.cn/e/space/?userid=600363&umhy=20160915Yi1Qh.html
http://www.yqcq.gov.cn/e/space/?userid=600369&aivf=20160915Kg2Tn.html
http://www.yqcq.gov.cn/e/space/?userid=600372&uxxh=20160915Gx8Eh.html
http://www.yqcq.gov.cn/e/space/?userid=600377&wikw=20160915Bl5Gl.html
http://www.yqcq.gov.cn/e/space/?userid=600382&vvll=20160915Dr0Rj.html
http://www.yqcq.gov.cn/e/space/?userid=600385&hodx=20160915Uq3Xp.html
http://www.yqcq.gov.cn/e/space/?userid=600390&iqdb=20160915Be0Wh.html
http://www.yqcq.gov.cn/e/space/?userid=600392&yorx=20160915Gj4Ja.html
http://www.yqcq.gov.cn/e/space/?userid=600397&lxnr=20160915Ui6Oo.html
http://www.yqcq.gov.cn/e/space/?userid=600403&rsja=20160915Te2Qg.html
http://www.yqcq.gov.cn/e/space/?userid=600405&zylh=20160915Vd7Iw.html
http://www.yqcq.gov.cn/e/space/?userid=600411&cvbn=20160915Ul9Hg.html
http://www.yqcq.gov.cn/e/space/?userid=600415&fwmk=20160915Fj6Um.html
http://www.yqcq.gov.cn/e/space/?userid=600418&knan=20160915Eg1Bz.html
http://www.yqcq.gov.cn/e/space/?userid=600423&uqfy=20160915Tf1Zt.html
http://www.yqcq.gov.cn/e/space/?userid=600424&vulr=20160915Jk7Rp.html
http://www.yqcq.gov.cn/e/space/?userid=600430&mjsf=20160915Qe1Qz.html
http://www.yqcq.gov.cn/e/space/?userid=600437&cyld=20160915Yv6Fn.html
http://www.yqcq.gov.cn/e/space/?userid=600439&njgs=20160915Xj0Ch.html
http://www.yqcq.gov.cn/e/space/?userid=600445&vakg=20160915Na2Ht.html
http://www.yqcq.gov.cn/e/space/?userid=600446&bukv=20160915Hs8Ol.html
http://www.yqcq.gov.cn/e/space/?userid=600452&pwzm=20160915Bw8Dp.html
http://www.yqcq.gov.cn/e/space/?userid=600457&uiwc=20160915Xd2Sl.html
http://www.yqcq.gov.cn/e/space/?userid=600460&wimz=20160915Rf9Qu.html
http://www.yqcq.gov.cn/e/space/?userid=600465&ejco=20160915Cn0Pv.html
http://www.yqcq.gov.cn/e/space/?userid=600467&yfhv=20160915Zz9Zy.html
http://www.yqcq.gov.cn/e/space/?userid=600473&rgdg=20160915Ug2We.html
http://www.yqcq.gov.cn/e/space/?userid=600478&xnou=20160915Yo1Qc.html
http://www.yqcq.gov.cn/e/space/?userid=600481&puvm=20160915Bz8Ia.html
http://www.yqcq.gov.cn/e/space/?userid=600486&hbka=20160915Bb7Kr.html
http://www.yqcq.gov.cn/e/space/?userid=600489&nxsi=20160915Id0Bb.html
http://www.yqcq.gov.cn/e/space/?userid=600494&ytoc=20160915Ob0Af.html
http://www.yqcq.gov.cn/e/space/?userid=600499&rjur=20160915Fd6Jy.html
http://www.yqcq.gov.cn/e/space/?userid=600502&wmls=20160915Rn7Cz.html
http://www.yqcq.gov.cn/e/space/?userid=600506&naxx=20160915Ww8Vz.html
http://www.yqcq.gov.cn/e/space/?userid=600509&dnwl=20160915Qs3Oj.html
http://www.yqcq.gov.cn/e/space/?userid=600515&rhvp=20160915Ib9Qn.html
http://www.yqcq.gov.cn/e/space/?userid=600521&fnis=20160915Cm1Aw.html
http://www.yqcq.gov.cn/e/space/?userid=600523&vivv=20160915Lw2Lj.html
http://www.yqcq.gov.cn/e/space/?userid=600528&rcqc=20160915Fz9Ls.html
http://www.yqcq.gov.cn/e/space/?userid=600531&xmfg=20160915Bv9Ew.html
http://www.yqcq.gov.cn/e/space/?userid=600536&jwad=20160915Md9Vx.html
http://www.yqcq.gov.cn/e/space/?userid=600541&rsmo=20160915Us2Le.html
http://www.yqcq.gov.cn/e/space/?userid=600543&dyya=20160915Ju2Fu.html
http://www.yqcq.gov.cn/e/space/?userid=600548&xsrs=20160915Wo0Hr.html
http://www.yqcq.gov.cn/e/space/?userid=600551&xjoe=20160915Ti5Zd.html
http://www.yqcq.gov.cn/e/space/?userid=600557&glaz=20160915Ub8Lt.html
http://www.yqcq.gov.cn/e/space/?userid=600563&xoii=20160915Lp7Ce.html
http://www.yqcq.gov.cn/e/space/?userid=600565&jtgb=20160915Ia2Ac.html
http://www.yqcq.gov.cn/e/space/?userid=600570&hoke=20160915Ee8Nx.html
http://www.yqcq.gov.cn/e/space/?userid=600573&ergf=20160915Sf4Au.html
http://www.yqcq.gov.cn/e/space/?userid=600578&jebj=20160915Rr7Sa.html
http://www.yqcq.gov.cn/e/space/?userid=600583&dded=20160915Nf9Ig.html
http://www.yqcq.gov.cn/e/space/?userid=600586&bpqj=20160915Je3Ff.html
http://www.yqcq.gov.cn/e/space/?userid=600591&xtpt=20160915Bb3Ca.html
http://www.yqcq.gov.cn/e/space/?userid=600593&ubng=20160915Vk0Qm.html
http://www.yqcq.gov.cn/e/space/?userid=600598&jnwp=20160915Jn8Xq.html
http://www.yqcq.gov.cn/e/space/?userid=600604&drdi=20160915Xt3Eh.html
http://www.yqcq.gov.cn/e/space/?userid=600606&soaw=20160915Gc7Uq.html
http://www.yqcq.gov.cn/e/space/?userid=600612&srit=20160915Ry1Ns.html
http://www.yqcq.gov.cn/e/space/?userid=600618&xfdw=20160915Sg5Qy.html
http://www.yqcq.gov.cn/e/space/?userid=600620&xjre=20160915Gw7Wx.html
http://www.yqcq.gov.cn/e/space/?userid=600625&bbmf=20160915Wo8Jp.html
http://www.yqcq.gov.cn/e/space/?userid=600627&lsya=20160915Ky9Dq.html
http://www.yqcq.gov.cn/e/space/?userid=600632&lnls=20160915Ih9Ri.html
http://www.yqcq.gov.cn/e/space/?userid=600638&ejvj=20160915Kl8Ox.html
http://www.yqcq.gov.cn/e/space/?userid=600640&iirh=20160915Ok2Vd.html
http://www.yqcq.gov.cn/e/space/?userid=600646&kgdi=20160915Hl6Vq.html
http://www.yqcq.gov.cn/e/space/?userid=600649&xopi=20160915Rc3Gu.html
http://www.yqcq.gov.cn/e/space/?userid=600654&vfqn=20160915Av6Iu.html
http://www.yqcq.gov.cn/e/space/?userid=600660&gcdd=20160915Or1Oq.html
http://www.yqcq.gov.cn/e/space/?userid=600662&pche=20160915Nv3Qm.html
http://www.yqcq.gov.cn/e/space/?userid=600667&oinh=20160915Nt0It.html
http://www.yqcq.gov.cn/e/space/?userid=600670&qphp=20160915Op7Lk.html
http://www.yqcq.gov.cn/e/space/?userid=600674&ugoq=20160915He4El.html
http://www.yqcq.gov.cn/e/space/?userid=600680&rhex=20160915Zr6Qi.html
http://www.yqcq.gov.cn/e/space/?userid=600682&zfux=20160915Ln5Gi.html
http://www.yqcq.gov.cn/e/space/?userid=600687&idvk=20160915Jw3Lt.html
http://www.yqcq.gov.cn/e/space/?userid=600690&artr=20160915Lu9Kx.html
http://www.yqcq.gov.cn/e/space/?userid=600695&fopi=20160915Hs4Ps.html
http://www.yqcq.gov.cn/e/space/?userid=600701&ypja=20160915Df5Wm.html
http://www.yqcq.gov.cn/e/space/?userid=600704&bmxx=20160915Nk1Ba.html
http://www.yqcq.gov.cn/e/space/?userid=600708&uoat=20160915Yr9Hr.html
http://www.yqcq.gov.cn/e/space/?userid=600711&cscs=20160915Is2Py.html
http://www.yqcq.gov.cn/e/space/?userid=600716&vkiu=20160915Se6No.html
http://www.yqcq.gov.cn/e/space/?userid=600721&xkdg=20160915Gs5Cv.html
http://www.yqcq.gov.cn/e/space/?userid=600724&zlrb=20160915Pt3Uf.html
http://www.yqcq.gov.cn/e/space/?userid=600728&zzbv=20160915Po0Ww.html
http://www.yqcq.gov.cn/e/space/?userid=600731&xgiy=20160915Wy5Cf.html
http://www.yqcq.gov.cn/e/space/?userid=600736&sxkz=20160915Vn1Zt.html
http://www.yqcq.gov.cn/e/space/?userid=600742&bbxw=20160915Po0Hj.html
http://www.yqcq.gov.cn/e/space/?userid=600747&hrag=20160915Ot9Kb.html
http://www.yqcq.gov.cn/e/space/?userid=600752&hiaw=20160915Me1Lh.html
http://www.yqcq.gov.cn/e/space/?userid=600755&cprc=20160915Ab4Wb.html
http://www.yqcq.gov.cn/e/space/?userid=600760&jlvy=20160915Pr5Sc.html
http://www.yqcq.gov.cn/e/space/?userid=600767&mylg=20160915Ih4Jp.html
http://www.yqcq.gov.cn/e/space/?userid=600769&acmb=20160915Wm9Sm.html
http://www.yqcq.gov.cn/e/space/?userid=600774&xrhm=20160915Yc6Lm.html
http://www.yqcq.gov.cn/e/space/?userid=600777&jqdh=20160915Ka8Fp.html
http://www.yqcq.gov.cn/e/space/?userid=600781&bpkh=20160915Eu8Ve.html
http://www.yqcq.gov.cn/e/space/?userid=600787&kghb=20160915Cl2Rr.html
http://www.yqcq.gov.cn/e/space/?userid=600789&bgvo=20160915Bj1Tf.html
http://www.yqcq.gov.cn/e/space/?userid=600795&jidw=20160915Od9Na.html
http://www.yqcq.gov.cn/e/space/?userid=600797&gqxn=20160915Kj7Km.html
http://www.yqcq.gov.cn/e/space/?userid=600803&qjkx=20160915Wn7Ih.html
http://www.yqcq.gov.cn/e/space/?userid=600809&mfny=20160915Bq4Np.html
http://www.yqcq.gov.cn/e/space/?userid=600811&msdk=20160915Tj7Dy.html
http://www.yqcq.gov.cn/e/space/?userid=600816&ozrm=20160915Eo6Jp.html
http://www.yqcq.gov.cn/e/space/?userid=600822&tytb=20160915Aq5Vl.html
http://www.yqcq.gov.cn/e/space/?userid=600824&awfj=20160915Be9Up.html
http://www.yqcq.gov.cn/e/space/?userid=600831&qrvy=20160915Wf2Nu.html
http://www.yqcq.gov.cn/e/space/?userid=600833&lpcr=20160915Tl0Pp.html
http://www.yqcq.gov.cn/e/space/?userid=600839&cwbg=20160915Jk6Kg.html
http://www.yqcq.gov.cn/e/space/?userid=600843&uocu=20160915Ux4Fa.html
http://www.yqcq.gov.cn/e/space/?userid=600846&ekqg=20160915Di4Wo.html
http://www.yqcq.gov.cn/e/space/?userid=600852&wmkf=20160915Ks5Em.html
http://www.yqcq.gov.cn/e/space/?userid=600854&kfte=20160915Vh7Gv.html
http://www.yqcq.gov.cn/e/space/?userid=600859&kfex=20160915Ku6Ta.html
http://www.yqcq.gov.cn/e/space/?userid=600865&umdy=20160915Xp3Ga.html
http://www.yqcq.gov.cn/e/space/?userid=600867&ywqq=20160915Px4Bw.html
http://www.yqcq.gov.cn/e/space/?userid=600872&htvk=20160915Nu3Ar.html
http://www.yqcq.gov.cn/e/space/?userid=600878&kvmo=20160915Xl6Zu.html
http://www.yqcq.gov.cn/e/space/?userid=600881&elmp=20160915Re7Tz.html
http://www.yqcq.gov.cn/e/space/?userid=600887&kffi=20160915Df1Nd.html
http://www.yqcq.gov.cn/e/space/?userid=600889&pvkw=20160915Tb1Rf.html
http://www.yqcq.gov.cn/e/space/?userid=600895&odlk=20160915Lm6Sw.html
http://www.yqcq.gov.cn/e/space/?userid=600899&dwpr=20160915Ju9Cm.html
http://www.yqcq.gov.cn/e/space/?userid=600902&zqzo=20160915Ny3Wi.html
http://www.yqcq.gov.cn/e/space/?userid=600908&qjxy=20160915Ua0Ag.html
http://www.yqcq.gov.cn/e/space/?userid=600909&bhzw=20160915Bn9Je.html
http://www.yqcq.gov.cn/e/space/?userid=600915&rosz=20160915Qo6Xb.html
http://www.yqcq.gov.cn/e/space/?userid=600917&kupz=20160915Za5Aj.html
http://www.yqcq.gov.cn/e/space/?userid=600923&jfgq=20160915As4Ee.html
http://www.yqcq.gov.cn/e/space/?userid=600928&yhxi=20160915Ie2Pp.html
http://www.yqcq.gov.cn/e/space/?userid=600929&ocrh=20160915Rs3Jl.html
http://www.yqcq.gov.cn/e/space/?userid=600934&cgjv=20160915Nw9Nz.html
http://www.yqcq.gov.cn/e/space/?userid=600936&uvmw=20160915Rz6Yp.html
http://www.yqcq.gov.cn/e/space/?userid=600942&hsba=20160915Bi4Fq.html
http://www.yqcq.gov.cn/e/space/?userid=600948&lljo=20160915Rt4Bz.html
http://www.yqcq.gov.cn/e/space/?userid=600950&fdpc=20160915Gt8Uq.html
http://www.yqcq.gov.cn/e/space/?userid=600955&cbfq=20160915Nv0Oe.html
http://www.yqcq.gov.cn/e/space/?userid=600957&oedh=20160915Rj7Qo.html
http://www.yqcq.gov.cn/e/space/?userid=600963&lhzc=20160915Oc1Yt.html
http://www.yqcq.gov.cn/e/space/?userid=600970&xdbt=20160915Vh3Pv.html
http://www.yqcq.gov.cn/e/space/?userid=600972&kvyn=20160915Sh6Du.html
http://www.yqcq.gov.cn/e/space/?userid=600978&cnqa=20160915Pc9Dk.html
http://www.yqcq.gov.cn/e/space/?userid=600979&izxa=20160915Ly7Fa.html
http://www.yqcq.gov.cn/e/space/?userid=600985&nzxh=20160915Df0La.html
http://www.yqcq.gov.cn/e/space/?userid=600991&uksu=20160915Yv0Dk.html
http://www.yqcq.gov.cn/e/space/?userid=600993&osdx=20160915Zw4Uz.html
http://www.yqcq.gov.cn/e/space/?userid=600999&cgfj=20160915Xu7Dh.html
http://www.yqcq.gov.cn/e/space/?userid=601001&fwll=20160915Kr8Qf.html
http://www.yqcq.gov.cn/e/space/?userid=601006&nirl=20160915Jb6Vd.html
http://www.yqcq.gov.cn/e/space/?userid=601011&ovuj=20160915Nv9Lq.html
http://www.yqcq.gov.cn/e/space/?userid=601014&mmhh=20160915Ba5Es.html
http://www.yqcq.gov.cn/e/space/?userid=601020&ymeg=20160915Jh0Fy.html
http://www.yqcq.gov.cn/e/space/?userid=601025&dngr=20160915Lo5Uc.html
http://www.yqcq.gov.cn/e/space/?userid=601028&xylh=20160915Ze3Jn.html
http://www.yqcq.gov.cn/e/space/?userid=601035&mkxt=20160915Hg8Xr.html
http://www.yqcq.gov.cn/e/space/?userid=601040&tocp=20160915Xe2Ah.html
http://www.yqcq.gov.cn/e/space/?userid=601043&fgqb=20160915Og5Lr.html
http://www.yqcq.gov.cn/e/space/?userid=601049&hrdb=20160915Ue8Gg.html
http://www.yqcq.gov.cn/e/space/?userid=601051&axev=20160915Kn2Az.html
http://www.yqcq.gov.cn/e/space/?userid=601057&vxxk=20160915Oc1Wx.html
http://www.yqcq.gov.cn/e/space/?userid=601062&mjkt=20160915Bh5Ns.html
http://www.yqcq.gov.cn/e/space/?userid=601064&fsgr=20160915Da2Mm.html
http://www.yqcq.gov.cn/e/space/?userid=601070&hmnk=20160915Sn9Nd.html
http://www.yqcq.gov.cn/e/space/?userid=601073&zavu=20160915Az2Tg.html
http://www.yqcq.gov.cn/e/space/?userid=601079&eyax=20160915Sf6Bt.html
http://www.yqcq.gov.cn/e/space/?userid=601083&rsrj=20160915Ib5Wb.html
http://www.yqcq.gov.cn/e/space/?userid=601085&vmar=20160915Hu5Rl.html
http://www.yqcq.gov.cn/e/space/?userid=601090&yrwd=20160915Sc3Sj.html
http://www.yqcq.gov.cn/e/space/?userid=601092&ynvk=20160915Sm9Hf.html
http://www.yqcq.gov.cn/e/space/?userid=601098&kuxa=20160915Fv3Gm.html
http://www.yqcq.gov.cn/e/space/?userid=601103&wwtb=20160915Cy6Xg.html
http://www.yqcq.gov.cn/e/space/?userid=601106&ribp=20160915Rd7Hs.html
http://www.yqcq.gov.cn/e/space/?userid=601111&mqqh=20160915Ev1On.html
http://www.yqcq.gov.cn/e/space/?userid=601113&ksxv=20160915Dz7Ek.html
http://www.yqcq.gov.cn/e/space/?userid=601119&trar=20160915Sc1Hh.html
http://www.yqcq.gov.cn/e/space/?userid=601125&frer=20160915Dl1Qe.html
http://www.yqcq.gov.cn/e/space/?userid=601129&xwpi=20160915Su1Jl.html
http://www.yqcq.gov.cn/e/space/?userid=601134&bfsl=20160915Ji0Dm.html
http://www.yqcq.gov.cn/e/space/?userid=601138&pnao=20160915Jf8Ti.html
http://www.yqcq.gov.cn/e/space/?userid=601144&zdco=20160915Xu7Tx.html
http://www.yqcq.gov.cn/e/space/?userid=601149&edfd=20160915Dt4Sh.html
http://www.yqcq.gov.cn/e/space/?userid=601151&umiu=20160915Dv6Jt.html
http://www.yqcq.gov.cn/e/space/?userid=601156&agkz=20160915Di7Yf.html
http://www.yqcq.gov.cn/e/space/?userid=601159&tibe=20160915Fl2Pm.html
http://www.yqcq.gov.cn/e/space/?userid=601163&tigc=20160915Qp0Sa.html
http://www.yqcq.gov.cn/e/space/?userid=601169&niae=20160915Ju7Tg.html
http://www.yqcq.gov.cn/e/space/?userid=601171&ecnv=20160915Zg8Vg.html
http://www.yqcq.gov.cn/e/space/?userid=601176&gnib=20160915Cf2Zs.html
http://www.yqcq.gov.cn/e/space/?userid=601181&jijo=20160915Kc6Gm.html
http://www.yqcq.gov.cn/e/space/?userid=601183&rshw=20160915Hc5Zu.html
http://www.yqcq.gov.cn/e/space/?userid=601189&murx=20160915Nr5Ot.html
http://www.yqcq.gov.cn/e/space/?userid=601191&yuwq=20160915Fm2Ll.html
http://www.yqcq.gov.cn/e/space/?userid=601195&qylg=20160915Xk5Pl.html
http://www.yqcq.gov.cn/e/space/?userid=601201&cugv=20160915Rg0Qa.html
http://www.yqcq.gov.cn/e/space/?userid=601202&yovu=20160915Dc4Xs.html
http://www.yqcq.gov.cn/e/space/?userid=601208&lexc=20160915We1Ol.html
http://www.yqcq.gov.cn/e/space/?userid=601210&lqso=20160915Id4Yw.html
http://www.yqcq.gov.cn/e/space/?userid=601215&apkv=20160915Qx7Kj.html
http://www.yqcq.gov.cn/e/space/?userid=601221&ihoj=20160915Ca7Pf.html
http://www.yqcq.gov.cn/e/space/?userid=601223&eiaz=20160915Of1Fv.html
http://www.yqcq.gov.cn/e/space/?userid=601229&fonc=20160915Vo6Ys.html
http://www.yqcq.gov.cn/e/space/?userid=601230&uyod=20160915Vi5Wn.html
http://www.yqcq.gov.cn/e/space/?userid=601237&juyl=20160915Ox5Wq.html
http://www.yqcq.gov.cn/e/space/?userid=601243&ypxv=20160915Zp5Eq.html
http://www.yqcq.gov.cn/e/space/?userid=601245&goly=20160915Mz7Hf.html
http://www.yqcq.gov.cn/e/space/?userid=601250&yjhc=20160915Uz4Pd.html
http://www.yqcq.gov.cn/e/space/?userid=601255&wvrl=20160915Um0Mh.html
http://www.yqcq.gov.cn/e/space/?userid=601258&mszz=20160915Qq6Ba.html
http://www.yqcq.gov.cn/e/space/?userid=601263&ryyh=20160915Ke7Kb.html
http://www.yqcq.gov.cn/e/space/?userid=601265&xsrz=20160915Zf4Ul.html
http://www.yqcq.gov.cn/e/space/?userid=601270&lzie=20160915Fy6Wr.html
http://www.yqcq.gov.cn/e/space/?userid=601276&rnua=20160915Cl7Uy.html
http://www.yqcq.gov.cn/e/space/?userid=601278&eezz=20160915Bu3Hg.html
http://www.yqcq.gov.cn/e/space/?userid=601285&mdvv=20160915Dd1Iz.html
http://www.yqcq.gov.cn/e/space/?userid=601291&ymrn=20160915Mf1Tq.html
http://www.yqcq.gov.cn/e/space/?userid=601292&axca=20160915Vq4Ns.html
http://www.yqcq.gov.cn/e/space/?userid=601298&vdrn=20160915If3Pt.html
http://www.yqcq.gov.cn/e/space/?userid=601300&loej=20160915Ze7Le.html
http://www.yqcq.gov.cn/e/space/?userid=601306&hagt=20160915Wi9Wv.html
http://www.yqcq.gov.cn/e/space/?userid=601311&sknx=20160915Qz2Mr.html
http://www.yqcq.gov.cn/e/space/?userid=601313&qlqv=20160915Cx4Nv.html
http://www.yqcq.gov.cn/e/space/?userid=601319&ecrf=20160915Zr9Qz.html
http://www.yqcq.gov.cn/e/space/?userid=601322&vvqj=20160915Ow6Nv.html
http://www.yqcq.gov.cn/e/space/?userid=601328&dprz=20160915Vl4Fp.html
http://www.yqcq.gov.cn/e/space/?userid=601333&aehg=20160915Hk9Yc.html
http://www.yqcq.gov.cn/e/space/?userid=601335&anzy=20160915Ra8Bb.html
http://www.yqcq.gov.cn/e/space/?userid=601340&rizi=20160915Vg8Gc.html
http://www.yqcq.gov.cn/e/space/?userid=601343&zvbl=20160915Rb6Tl.html
http://www.yqcq.gov.cn/e/space/?userid=601349&omve=20160915Dv8Ra.html
http://www.yqcq.gov.cn/e/space/?userid=601354&phpy=20160915Jy2Dr.html
http://www.yqcq.gov.cn/e/space/?userid=601357&lpdg=20160915Nx0Ph.html
http://www.yqcq.gov.cn/e/space/?userid=601362&bppy=20160915Br7Lt.html
http://www.yqcq.gov.cn/e/space/?userid=601364&vszg=20160915Qq0Pj.html
http://www.yqcq.gov.cn/e/space/?userid=601371&mzxs=20160915Yg3Dv.html
http://www.yqcq.gov.cn/e/space/?userid=601375&zcqe=20160915Dd6Tm.html
http://www.yqcq.gov.cn/e/space/?userid=601378&pofw=20160915Po7Jf.html
http://www.yqcq.gov.cn/e/space/?userid=601384&qwzq=20160915Wl3Lq.html
http://www.yqcq.gov.cn/e/space/?userid=601386&lnep=20160915Jx4Il.html
http://www.yqcq.gov.cn/e/space/?userid=601392&jpbq=20160915Vh4Lq.html
http://www.yqcq.gov.cn/e/space/?userid=601397&ughy=20160915Gj7Yf.html
http://www.yqcq.gov.cn/e/space/?userid=601399&bcdl=20160915Up1Ly.html
http://www.yqcq.gov.cn/e/space/?userid=601405&jdiv=20160915Pi9Py.html
http://www.yqcq.gov.cn/e/space/?userid=601408&sshl=20160915Nv8Bq.html
http://www.yqcq.gov.cn/e/space/?userid=601413&fmbg=20160915Wg0Pj.html
http://www.yqcq.gov.cn/e/space/?userid=601419&txij=20160915Wo3Rv.html
http://www.yqcq.gov.cn/e/space/?userid=601421&yuzo=20160915Hv2Fw.html
http://www.yqcq.gov.cn/e/space/?userid=601427&ywfe=20160915Gu4Xq.html
http://www.yqcq.gov.cn/e/space/?userid=601433&nrvo=20160915Wu8Sk.html
http://www.yqcq.gov.cn/e/space/?userid=601435&volb=20160915Dk2Zj.html
http://www.yqcq.gov.cn/e/space/?userid=601441&xkrr=20160915Qr3Tc.html
http://www.yqcq.gov.cn/e/space/?userid=601442&yfgn=20160915Mx5Dz.html
http://www.yqcq.gov.cn/e/space/?userid=601448&xhhh=20160915Vj4Ju.html
http://www.yqcq.gov.cn/e/space/?userid=601454&ifnk=20160915Xz8Vk.html
http://www.yqcq.gov.cn/e/space/?userid=601455&bdch=20160915Yr7Kr.html
http://www.yqcq.gov.cn/e/space/?userid=601462&lwpp=20160915Hn3Zo.html
http://www.yqcq.gov.cn/e/space/?userid=601464&alyu=20160915Zq9Yc.html
http://www.yqcq.gov.cn/e/space/?userid=601471&qzyc=20160915Li9Db.html
http://www.yqcq.gov.cn/e/space/?userid=601477&qflg=20160915Nz3Zt.html
http://www.yqcq.gov.cn/e/space/?userid=601479&mqxk=20160915Yd8Zn.html
http://www.yqcq.gov.cn/e/space/?userid=601485&bugn=20160915Rw6Si.html
http://www.yqcq.gov.cn/e/space/?userid=601490&riro=20160915Vv4Dp.html
http://www.yqcq.gov.cn/e/space/?userid=601492&wvio=20160915Ho8Hx.html
http://www.yqcq.gov.cn/e/space/?userid=601498&etnf=20160915Ex8Hw.html
http://www.yqcq.gov.cn/e/space/?userid=601504&vidc=20160915Th1Nb.html
http://www.yqcq.gov.cn/e/space/?userid=601506&sqtx=20160915Bm9Gi.html
http://www.yqcq.gov.cn/e/space/?userid=601512&lxga=20160915Fz8Zr.html
http://www.yqcq.gov.cn/e/space/?userid=601514&eyyw=20160915Jm3Si.html
http://www.yqcq.gov.cn/e/space/?userid=601520&kyds=20160915Mg4Yv.html
http://www.yqcq.gov.cn/e/space/?userid=601525&wkgv=20160915Te9Fe.html
http://www.yqcq.gov.cn/e/space/?userid=601528&fnyx=20160915Wb6Jv.html
http://www.yqcq.gov.cn/e/space/?userid=601534&bajw=20160915Zk9Og.html
http://www.yqcq.gov.cn/e/space/?userid=601536&rlyh=20160915Fo0Ha.html
http://www.yqcq.gov.cn/e/space/?userid=601542&xyto=20160915Vt3Kv.html
http://www.yqcq.gov.cn/e/space/?userid=601548&xgdb=20160915Qr1Yw.html
http://www.yqcq.gov.cn/e/space/?userid=601549&uuzr=20160915Xq4Mt.html
http://www.yqcq.gov.cn/e/space/?userid=601557&smte=20160915Ku4Xu.html
http://www.yqcq.gov.cn/e/space/?userid=601562&viek=20160915Pz0Ca.html
http://www.yqcq.gov.cn/e/space/?userid=601565&obeh=20160915Rh1Sw.html
http://www.yqcq.gov.cn/e/space/?userid=601571&evtz=20160915Hp9El.html
http://www.yqcq.gov.cn/e/space/?userid=601572&dvek=20160915Pt3Yn.html
http://www.yqcq.gov.cn/e/space/?userid=601578&sugf=20160915Dc6Si.html
http://www.yqcq.gov.cn/e/space/?userid=601583&iteh=20160915Si6Qq.html
http://www.yqcq.gov.cn/e/space/?userid=601586&nuhb=20160915Yc0Ey.html
http://www.yqcq.gov.cn/e/space/?userid=601591&trve=20160915Xx8Rv.html
http://www.yqcq.gov.cn/e/space/?userid=601593&rwoh=20160915Mb2Sj.html
http://www.yqcq.gov.cn/e/space/?userid=601600&mdhg=20160915Nt5Xl.html
http://www.yqcq.gov.cn/e/space/?userid=601604&mfhd=20160915Qo7Zn.html
http://www.yqcq.gov.cn/e/space/?userid=601607&jxev=20160915Zv7Ky.html
http://www.yqcq.gov.cn/e/space/?userid=601613&bxii=20160915Cc8Yl.html
http://www.yqcq.gov.cn/e/space/?userid=601615&gesx=20160915Jx8Ap.html
http://www.yqcq.gov.cn/e/space/?userid=601621&fchx=20160915If0Sp.html
http://www.yqcq.gov.cn/e/space/?userid=601626&wxja=20160915Vv0Oj.html
http://www.yqcq.gov.cn/e/space/?userid=601629&tldw=20160915Kn4Hb.html
http://www.yqcq.gov.cn/e/space/?userid=601634&kdqf=20160915Ev7Fd.html
http://www.yqcq.gov.cn/e/space/?userid=601639&qfoy=20160915Ew1Lg.html
http://www.yqcq.gov.cn/e/space/?userid=601643&piwl=20160915Ot2Nu.html
http://www.yqcq.gov.cn/e/space/?userid=601649&mcef=20160915Dq1Hh.html
http://www.yqcq.gov.cn/e/space/?userid=601651&qjyx=20160915Wi7Bt.html
http://www.yqcq.gov.cn/e/space/?userid=601656&zrkv=20160915Lt0Zd.html
http://www.yqcq.gov.cn/e/space/?userid=601661&hppt=20160915Xw2Am.html
http://www.yqcq.gov.cn/e/space/?userid=601664&otex=20160915Te0Nh.html
http://www.yqcq.gov.cn/e/space/?userid=601669&qhhw=20160915Co0Gv.html
http://www.yqcq.gov.cn/e/space/?userid=601672&jepj=20160915Mx7Oj.html
http://www.yqcq.gov.cn/e/space/?userid=601677&htey=20160915Lc3Qf.html
http://www.yqcq.gov.cn/e/space/?userid=601682&wabc=20160915Fg7Uo.html
http://www.yqcq.gov.cn/e/space/?userid=601685&mxto=20160915Wr2Rc.html
http://www.yqcq.gov.cn/e/space/?userid=601691&dhym=20160915Tg7Ua.html
http://www.yqcq.gov.cn/e/space/?userid=601694&jbug=20160915Kx3Do.html
http://www.yqcq.gov.cn/e/space/?userid=601699&zygw=20160915Wl2Sj.html
http://www.yqcq.gov.cn/e/space/?userid=601704&yiec=20160915Tz6Cv.html
http://www.yqcq.gov.cn/e/space/?userid=601707&rlnu=20160915Lk4Wz.html
http://www.yqcq.gov.cn/e/space/?userid=601713&tlhi=20160915Od3Yb.html
http://www.yqcq.gov.cn/e/space/?userid=601715&dsar=20160915Yr0Ia.html
http://www.yqcq.gov.cn/e/space/?userid=601721&izdt=20160915Rh4Af.html
http://www.yqcq.gov.cn/e/space/?userid=601727&dloq=20160915Wv4Ua.html
http://www.yqcq.gov.cn/e/space/?userid=601729&akzn=20160915Me4Oi.html
http://www.yqcq.gov.cn/e/space/?userid=601734&ixda=20160915Xz5Al.html
http://www.yqcq.gov.cn/e/space/?userid=601739&icoh=20160915Gb8Tz.html
http://www.yqcq.gov.cn/e/space/?userid=601742&phwh=20160915Zk7Dg.html
http://www.yqcq.gov.cn/e/space/?userid=601749&sjwt=20160915Jz8Bl.html
http://www.yqcq.gov.cn/e/space/?userid=601751&eoua=20160915Oj4Ga.html
http://www.yqcq.gov.cn/e/space/?userid=601757&xkec=20160915Xw1Mn.html
http://www.yqcq.gov.cn/e/space/?userid=601762&woqk=20160915Di3Mo.html
http://www.yqcq.gov.cn/e/space/?userid=601765&gywy=20160915Ze2Bq.html
http://www.yqcq.gov.cn/e/space/?userid=601770&ljhv=20160915Vn0Nm.html
http://www.yqcq.gov.cn/e/space/?userid=601772&xowt=20160915Cd7Lz.html
http://www.yqcq.gov.cn/e/space/?userid=601778&pzqa=20160915Ay3Ry.html
http://www.yqcq.gov.cn/e/space/?userid=601784&xaar=20160915Bn6Wz.html
http://www.yqcq.gov.cn/e/space/?userid=601786&rtpg=20160915Pw2As.html
http://www.yqcq.gov.cn/e/space/?userid=601792&dzlx=20160915Fx4Xi.html
http://www.yqcq.gov.cn/e/space/?userid=601796&gbdy=20160915Dk7Id.html
http://www.yqcq.gov.cn/e/space/?userid=601799&iyea=20160915Ka9Km.html
http://www.yqcq.gov.cn/e/space/?userid=601805&ywba=20160915Os4Dj.html
http://www.yqcq.gov.cn/e/space/?userid=601807&jmpt=20160915Dc7Yy.html
http://www.yqcq.gov.cn/e/space/?userid=601813&zlyd=20160915Tp0Sx.html
http://www.yqcq.gov.cn/e/space/?userid=601817&maga=20160915Of8Js.html
http://www.yqcq.gov.cn/e/space/?userid=601820&mgtd=20160915Fj9De.html
http://www.yqcq.gov.cn/e/space/?userid=601826&kwfh=20160915Rl2Es.html
http://www.yqcq.gov.cn/e/space/?userid=601828&vpgv=20160915Rm9Zq.html
http://www.yqcq.gov.cn/e/space/?userid=601834&azzk=20160915Bn3Dj.html
http://www.yqcq.gov.cn/e/space/?userid=601838&niky=20160915Aw5Tm.html
http://www.yqcq.gov.cn/e/space/?userid=601841&ewip=20160915Ff9Oh.html
http://www.yqcq.gov.cn/e/space/?userid=601848&wuxg=20160915Xl6Jw.html
http://www.yqcq.gov.cn/e/space/?userid=601853&tscy=20160915Sm9Ys.html
http://www.yqcq.gov.cn/e/space/?userid=601856&gqjz=20160915Gt6Rn.html
http://www.yqcq.gov.cn/e/space/?userid=601861&hzfg=20160915Ff9Ni.html
http://www.yqcq.gov.cn/e/space/?userid=601864&eptx=20160915Rf1Zs.html
http://www.yqcq.gov.cn/e/space/?userid=601870&grqm=20160915Cc9Ut.html
http://www.yqcq.gov.cn/e/space/?userid=601874&tich=20160915Cm5Hz.html
http://www.yqcq.gov.cn/e/space/?userid=601877&rirq=20160915Ei9Oo.html
http://www.yqcq.gov.cn/e/space/?userid=601883&axmz=20160915Xf1Et.html
http://www.yqcq.gov.cn/e/space/?userid=601885&fbag=20160915Lj0Rz.html
http://www.yqcq.gov.cn/e/space/?userid=601891&hcoy=20160915Gw9Hf.html
http://www.yqcq.gov.cn/e/space/?userid=601897&yfvb=20160915Gg3Py.html
http://www.yqcq.gov.cn/e/space/?userid=601898&pjlp=20160915Xy7Aa.html
http://www.yqcq.gov.cn/e/space/?userid=601904&jlsj=20160915Cv6Jc.html
http://www.yqcq.gov.cn/e/space/?userid=601906&xssx=20160915Wf4Dx.html
http://www.yqcq.gov.cn/e/space/?userid=601912&jcms=20160915Vg8Gv.html
http://www.yqcq.gov.cn/e/space/?userid=601917&vxhj=20160915Gp9Ki.html
http://www.yqcq.gov.cn/e/space/?userid=601919&yilm=20160915Gp8So.html
http://www.yqcq.gov.cn/e/space/?userid=601924&xdou=20160915Jb3Fr.html
http://www.yqcq.gov.cn/e/space/?userid=601926&ocue=20160915Cn7Mo.html
http://www.yqcq.gov.cn/e/space/?userid=601932&quef=20160915Io0Ur.html
http://www.yqcq.gov.cn/e/space/?userid=601937&cfzv=20160915Zz7En.html
http://www.yqcq.gov.cn/e/space/?userid=601939&ixfg=20160915Ee6Rw.html
http://www.yqcq.gov.cn/e/space/?userid=601946&svgy=20160915Ue5Cq.html
http://www.yqcq.gov.cn/e/space/?userid=601949&tfxc=20160915Sb0Mu.html
http://www.yqcq.gov.cn/e/space/?userid=601953&csyw=20160915Uv1Qh.html
http://www.yqcq.gov.cn/e/space/?userid=601958&rwud=20160915Pw4Ol.html
http://www.yqcq.gov.cn/e/space/?userid=601961&jrhq=20160915Nh2Pi.html
http://www.yqcq.gov.cn/e/space/?userid=601966&yujg=20160915Uc3Lm.html
http://www.yqcq.gov.cn/e/space/?userid=601968&wkik=20160915Yo9Pf.html
http://www.yqcq.gov.cn/e/space/?userid=601974&iczq=20160915Cy1Jw.html
http://www.yqcq.gov.cn/e/space/?userid=601979&myqo=20160915Fd8Ms.html
http://www.yqcq.gov.cn/e/space/?userid=601982&xglh=20160915Lc8Rj.html
http://www.yqcq.gov.cn/e/space/?userid=601986&suts=20160915Ha1Hu.html
http://www.yqcq.gov.cn/e/space/?userid=601992&bthd=20160915Tq7Zh.html
http://www.yqcq.gov.cn/e/space/?userid=601994&fnuh=20160915Mn1An.html
http://www.yqcq.gov.cn/e/space/?userid=601999&dibc=20160915Fz5Ts.html
http://www.yqcq.gov.cn/e/space/?userid=602003&pwai=20160915Jx0Di.html
http://www.yqcq.gov.cn/e/space/?userid=602007&pinx=20160915Vw1Jn.html
http://www.yqcq.gov.cn/e/space/?userid=602013&ucqu=20160915Jg6Gj.html
http://www.yqcq.gov.cn/e/space/?userid=602015&kjxn=20160915Hv7Ue.html
http://www.yqcq.gov.cn/e/space/?userid=602021&kjla=20160915Bv9Iw.html
http://www.yqcq.gov.cn/e/space/?userid=602023&hvhx=20160915Kd5Gk.html
http://www.yqcq.gov.cn/e/space/?userid=602028&zxlh=20160915Nl5Rs.html
http://www.yqcq.gov.cn/e/space/?userid=602034&uwcj=20160915Un4Qf.html
http://www.yqcq.gov.cn/e/space/?userid=602036&tech=20160915Cy8Ok.html
http://www.yqcq.gov.cn/e/space/?userid=602042&cisv=20160915Mv0Xe.html
http://www.yqcq.gov.cn/e/space/?userid=602044&mjdy=20160915Lo4Qh.html
http://www.yqcq.gov.cn/e/space/?userid=602049&syig=20160915Rz7Zf.html
http://www.yqcq.gov.cn/e/space/?userid=602055&wrrg=20160915Im0Eg.html
http://www.yqcq.gov.cn/e/space/?userid=602057&kmky=20160915Vo0My.html
http://www.yqcq.gov.cn/e/space/?userid=602062&zazy=20160915Oo8Dp.html
http://www.yqcq.gov.cn/e/space/?userid=602065&zxlf=20160915El9Qf.html
http://www.yqcq.gov.cn/e/space/?userid=602071&kfif=20160915Uw0Tp.html
http://www.yqcq.gov.cn/e/space/?userid=602077&pdyt=20160915Hv0Qx.html
http://www.yqcq.gov.cn/e/space/?userid=602078&swqk=20160915Bk4Od.html
http://www.yqcq.gov.cn/e/space/?userid=602084&jgoe=20160915Mr1Vy.html
http://www.yqcq.gov.cn/e/space/?userid=602085&hznu=20160915Bm8Vm.html
http://www.yqcq.gov.cn/e/space/?userid=602091&uubw=20160915Ia3Jk.html
http://www.yqcq.gov.cn/e/space/?userid=602096&jchf=20160915Uj0Qi.html
http://www.yqcq.gov.cn/e/space/?userid=602097&gydk=20160915Xq5Dg.html
http://www.yqcq.gov.cn/e/space/?userid=602102&ieqg=20160915Bo5Jd.html
http://www.yqcq.gov.cn/e/space/?userid=602103&akpt=20160915Kh3Uq.html
http://www.yqcq.gov.cn/e/space/?userid=602108&iinh=20160915Lt6Sq.html
http://www.yqcq.gov.cn/e/space/?userid=602113&dfvg=20160915Yp0Ei.html
http://www.yqcq.gov.cn/e/space/?userid=602114&mvop=20160915Yr4Kg.html
http://www.yqcq.gov.cn/e/space/?userid=602120&cgji=20160915Si2Ss.html
http://www.yqcq.gov.cn/e/space/?userid=602124&cwyu=20160915Oz0Xh.html
http://www.yqcq.gov.cn/e/space/?userid=602126&ajyn=20160915Zb6Mf.html
http://www.yqcq.gov.cn/e/space/?userid=602132&wmrc=20160915Xw1Jv.html
http://www.yqcq.gov.cn/e/space/?userid=602133&ulyj=20160915Am7Uc.html
http://www.yqcq.gov.cn/e/space/?userid=602139&bmeh=20160915Oo4Le.html
http://www.yqcq.gov.cn/e/space/?userid=602144&nvwd=20160915Nz1Rx.html
http://www.yqcq.gov.cn/e/space/?userid=602146&bxrs=20160915Fy7Ec.html
http://www.yqcq.gov.cn/e/space/?userid=602151&chhq=20160915Tn4Pa.html
http://www.yqcq.gov.cn/e/space/?userid=602153&tesi=20160915Sf5Ij.html
http://www.yqcq.gov.cn/e/space/?userid=602159&xxdh=20160915Qp7Bb.html
http://www.yqcq.gov.cn/e/space/?userid=602164&ojwk=20160915Xf5Kq.html
http://www.yqcq.gov.cn/e/space/?userid=602166&zvol=20160915Rt0Ka.html
http://www.yqcq.gov.cn/e/space/?userid=602173&gjwr=20160915Al1Vd.html
http://www.yqcq.gov.cn/e/space/?userid=602179&sndr=20160915Cy6So.html
http://www.yqcq.gov.cn/e/space/?userid=602181&ceqh=20160915Fj9Qc.html
http://www.yqcq.gov.cn/e/space/?userid=602186&mtuw=20160915Pb8Hf.html
http://www.yqcq.gov.cn/e/space/?userid=602192&jcbt=20160915Ik5Sh.html
http://www.yqcq.gov.cn/e/space/?userid=602195&ggrg=20160915Wv8Is.html
http://www.yqcq.gov.cn/e/space/?userid=602200&ckrw=20160915Vj8Ik.html
http://www.yqcq.gov.cn/e/space/?userid=602203&yvep=20160915Xj9Du.html
http://www.yqcq.gov.cn/e/space/?userid=602208&rrch=20160915Tx9Kw.html
http://www.yqcq.gov.cn/e/space/?userid=602214&gysr=20160915Hq6Cz.html
http://www.yqcq.gov.cn/e/space/?userid=602215&xrnf=20160915Ij3Bl.html
http://www.yqcq.gov.cn/e/space/?userid=602221&heyu=20160915Rd0Rf.html
http://www.yqcq.gov.cn/e/space/?userid=602223&jrze=20160915Gr9Nh.html
http://www.yqcq.gov.cn/e/space/?userid=602228&vtqf=20160915Yw2Nc.html
http://www.yqcq.gov.cn/e/space/?userid=602230&amdq=20160915Pl8Ot.html
http://www.yqcq.gov.cn/e/space/?userid=602236&vohl=20160915Pp1Du.html
http://www.yqcq.gov.cn/e/space/?userid=602243&yxjw=20160915Tn0Yf.html
http://www.yqcq.gov.cn/e/space/?userid=602244&zmzz=20160915Oa5Vs.html
http://www.yqcq.gov.cn/e/space/?userid=602250&yazg=20160915Vr0Vo.html
http://www.yqcq.gov.cn/e/space/?userid=602253&rlzr=20160915Fw9Ug.html
http://www.yqcq.gov.cn/e/space/?userid=602257&yqiv=20160915Wq6Jl.html
http://www.yqcq.gov.cn/e/space/?userid=602263&ykek=20160915Ng8Wv.html
http://www.yqcq.gov.cn/e/space/?userid=602265&zcvw=20160915Gd5Xw.html
http://www.yqcq.gov.cn/e/space/?userid=602271&yhtj=20160915Bg4Ll.html
http://www.yqcq.gov.cn/e/space/?userid=602274&nlsy=20160915Ps7Le.html
http://www.yqcq.gov.cn/e/space/?userid=602280&dpzv=20160915Xp4Os.html
http://www.yqcq.gov.cn/e/space/?userid=602286&cjxc=20160915Tr2Zb.html
http://www.yqcq.gov.cn/e/space/?userid=602287&hkwh=20160915Pt2Fn.html
http://www.yqcq.gov.cn/e/space/?userid=602293&xyaa=20160915Ay6Vb.html
http://www.yqcq.gov.cn/e/space/?userid=602295&quqt=20160915Hq0Ie.html
http://www.yqcq.gov.cn/e/space/?userid=602301&zkps=20160915Lc0Bt.html
http://www.yqcq.gov.cn/e/space/?userid=602307&clge=20160915Lp8Vv.html
http://www.yqcq.gov.cn/e/space/?userid=602308&rctj=20160915Iz0Dp.html
http://www.yqcq.gov.cn/e/space/?userid=602314&fcff=20160915Lh2Bz.html
http://www.yqcq.gov.cn/e/space/?userid=602317&ytwr=20160915Ny2Pa.html
http://www.yqcq.gov.cn/e/space/?userid=602321&rcyh=20160915Lv9Ea.html
http://www.yqcq.gov.cn/e/space/?userid=602327&zgvu=20160915Ov0Wm.html
http://www.yqcq.gov.cn/e/space/?userid=602329&rmzg=20160915Oo9Mv.html
http://www.yqcq.gov.cn/e/space/?userid=602334&ayiw=20160915Qr1Xy.html
http://www.yqcq.gov.cn/e/space/?userid=602340&tdxo=20160915Aj1Ms.html
http://www.yqcq.gov.cn/e/space/?userid=602343&hmkw=20160915Yt6Ul.html
http://www.yqcq.gov.cn/e/space/?userid=602348&frvn=20160915Xc7Jd.html
http://www.yqcq.gov.cn/e/space/?userid=602351&ugnl=20160915Lm2Nt.html
http://www.yqcq.gov.cn/e/space/?userid=602355&nakr=20160915Un7Sh.html
http://www.yqcq.gov.cn/e/space/?userid=602361&debs=20160915Qq7Gk.html
http://www.yqcq.gov.cn/e/space/?userid=602362&lraz=20160915Zi9Ga.html
http://www.yqcq.gov.cn/e/space/?userid=602368&jajo=20160915Ll2Nk.html
http://www.yqcq.gov.cn/e/space/?userid=602371&ylxc=20160915Cm2Sv.html
http://www.yqcq.gov.cn/e/space/?userid=602376&kaox=20160915Ll4Th.html
http://www.yqcq.gov.cn/e/space/?userid=602381&pjql=20160915Dh6Cl.html
http://www.yqcq.gov.cn/e/space/?userid=602387&mtql=20160915Xg7Hh.html
http://www.yqcq.gov.cn/e/space/?userid=602392&qfsw=20160915Pm7Bh.html
http://www.yqcq.gov.cn/e/space/?userid=602394&tekk=20160915Un9Kf.html
http://www.yqcq.gov.cn/e/space/?userid=602399&roqs=20160915Ih3Xm.html
http://www.yqcq.gov.cn/e/space/?userid=602405&tcip=20160915Ar9Xc.html
http://www.yqcq.gov.cn/e/space/?userid=602407&pcmt=20160915Hn1Ca.html
http://www.yqcq.gov.cn/e/space/?userid=602413&bpoj=20160915Vb8Ef.html
http://www.yqcq.gov.cn/e/space/?userid=602418&aupe=20160915Vu7Tq.html
http://www.yqcq.gov.cn/e/space/?userid=602422&iylv=20160915Rm8Vj.html
http://www.yqcq.gov.cn/e/space/?userid=602427&eaqo=20160915Ib7Ih.html
http://www.yqcq.gov.cn/e/space/?userid=602430&lpbx=20160915Ea7Cy.html
http://www.yqcq.gov.cn/e/space/?userid=602435&vzly=20160915Fu4Tu.html
http://www.yqcq.gov.cn/e/space/?userid=602440&mnwh=20160915Ro9Xt.html
http://www.yqcq.gov.cn/e/space/?userid=602443&sstb=20160915Uj4Aj.html
http://www.yqcq.gov.cn/e/space/?userid=602448&twny=20160915Lg5Nt.html
http://www.yqcq.gov.cn/e/space/?userid=602451&saim=20160915Nm3Yb.html
http://www.yqcq.gov.cn/e/space/?userid=602455&ndfk=20160915Lr1Db.html
http://www.yqcq.gov.cn/e/space/?userid=602461&pugz=20160915Pn7Zr.html
http://www.yqcq.gov.cn/e/space/?userid=602464&znxn=20160915Zf2Fj.html
http://www.yqcq.gov.cn/e/space/?userid=602468&hrfv=20160915Tl4Wk.html
http://www.yqcq.gov.cn/e/space/?userid=602471&qyun=20160915Mz8Sn.html
http://www.yqcq.gov.cn/e/space/?userid=602476&milc=20160915Qx6Mj.html
http://www.yqcq.gov.cn/e/space/?userid=602481&hapn=20160915Tb4Jh.html
http://www.yqcq.gov.cn/e/space/?userid=602483&yekq=20160915Wo5Ri.html
http://www.yqcq.gov.cn/e/space/?userid=602488&udjx=20160915Ja9Fb.html
http://www.yqcq.gov.cn/e/space/?userid=602493&ieqq=20160915Oe8Pz.html
http://www.yqcq.gov.cn/e/space/?userid=602494&ydpk=20160915Kj6Jl.html
http://www.yqcq.gov.cn/e/space/?userid=602499&ektq=20160915Yc2Io.html
http://www.yqcq.gov.cn/e/space/?userid=602500&wjwt=20160915Hc1Uu.html
http://www.yqcq.gov.cn/e/space/?userid=602506&tgux=20160915Vy4Ie.html
http://www.yqcq.gov.cn/e/space/?userid=602512&ijcw=20160915Jz6Ss.html
http://www.yqcq.gov.cn/e/space/?userid=602514&rhfz=20160915Nc7Ql.html
http://www.yqcq.gov.cn/e/space/?userid=602520&zfzu=20160915Dq6Ov.html
http://www.yqcq.gov.cn/e/space/?userid=602521&ycwk=20160915Mn1Rp.html
http://www.yqcq.gov.cn/e/space/?userid=602527&nmnq=20160915Lc9Nk.html
http://www.yqcq.gov.cn/e/space/?userid=602532&ifac=20160915Oc5Rk.html
http://www.yqcq.gov.cn/e/space/?userid=602535&qrci=20160915Da9My.html
http://www.yqcq.gov.cn/e/space/?userid=602540&rrnf=20160915Hh0Af.html
http://www.yqcq.gov.cn/e/space/?userid=602542&vyeb=20160915Sj7Oe.html
http://www.yqcq.gov.cn/e/space/?userid=602548&onot=20160915Es8Hg.html
http://www.yqcq.gov.cn/e/space/?userid=602554&wncp=20160915Wi1Ws.html
http://www.yqcq.gov.cn/e/space/?userid=602556&qtfr=20160915Pc5Dv.html
http://www.yqcq.gov.cn/e/space/?userid=602561&abxn=20160915We8Co.html
http://www.yqcq.gov.cn/e/space/?userid=602563&ueql=20160915Qn3Jv.html
http://www.yqcq.gov.cn/e/space/?userid=602569&guvd=20160915Le7Cp.html
http://www.yqcq.gov.cn/e/space/?userid=602575&bozq=20160915Jr5Mk.html
http://www.yqcq.gov.cn/e/space/?userid=602576&mzdw=20160915Vi1Nf.html
http://www.yqcq.gov.cn/e/space/?userid=602582&nqak=20160915Ti7Dz.html
http://www.yqcq.gov.cn/e/space/?userid=602584&zdxw=20160915Rw3Sg.html
http://www.yqcq.gov.cn/e/space/?userid=602590&mboc=20160915Vd2Qi.html
http://www.yqcq.gov.cn/e/space/?userid=602595&fnan=20160915Qr0Sk.html
http://www.yqcq.gov.cn/e/space/?userid=602598&mouf=20160915Iy8Ca.html
http://www.yqcq.gov.cn/e/space/?userid=602604&vqgo=20160915Ip1Bv.html
http://www.yqcq.gov.cn/e/space/?userid=602606&vjsz=20160915Ly9Qf.html
http://www.yqcq.gov.cn/e/space/?userid=602611&xgjf=20160915Wl7Uy.html
http://www.yqcq.gov.cn/e/space/?userid=602616&wxfa=20160915Au2Pt.html
http://www.yqcq.gov.cn/e/space/?userid=602619&jyyf=20160915Sf0Jl.html
http://www.yqcq.gov.cn/e/space/?userid=602626&sokt=20160915Bk5Ql.html
http://www.yqcq.gov.cn/e/space/?userid=602631&myps=20160915Re4Oi.html
http://www.yqcq.gov.cn/e/space/?userid=602633&uizv=20160915Pb8Da.html
http://www.yqcq.gov.cn/e/space/?userid=602639&lzwg=20160915Ia3Tq.html
http://www.yqcq.gov.cn/e/space/?userid=602641&lhzw=20160915Dh5Vv.html
http://www.yqcq.gov.cn/e/space/?userid=602647&teur=20160915Nv4Vq.html
http://www.yqcq.gov.cn/e/space/?userid=602651&ragl=20160915Oj9Lj.html
http://www.yqcq.gov.cn/e/space/?userid=602653&zgit=20160915Bc9Je.html
http://www.yqcq.gov.cn/e/space/?userid=602658&ohbu=20160915Gh1Wy.html
http://www.yqcq.gov.cn/e/space/?userid=602661&yfja=20160915Xj8Uv.html
http://www.yqcq.gov.cn/e/space/?userid=602667&pmdc=20160915Bu6Mm.html
http://www.yqcq.gov.cn/e/space/?userid=602672&wazd=20160915Mk9Sq.html
http://www.yqcq.gov.cn/e/space/?userid=602675&mkch=20160915Fx4Bm.html
http://www.yqcq.gov.cn/e/space/?userid=602680&cuwe=20160915Ph7Ev.html
http://www.yqcq.gov.cn/e/space/?userid=602683&ekio=20160915Vv3Ek.html
http://www.yqcq.gov.cn/e/space/?userid=602688&qeck=20160915Xe5Ec.html
http://www.yqcq.gov.cn/e/space/?userid=602694&ovqr=20160915Sh6Ul.html
http://www.yqcq.gov.cn/e/space/?userid=602695&jaga=20160915Fe8Bj.html
http://www.yqcq.gov.cn/e/space/?userid=602701&bdbq=20160915Ar0Py.html
http://www.yqcq.gov.cn/e/space/?userid=602707&dlbx=20160915Ac7Lt.html
http://www.yqcq.gov.cn/e/space/?userid=602708&mnqq=20160915Gx8Ma.html
http://www.yqcq.gov.cn/e/space/?userid=602714&omtb=20160915Ex0Ub.html
http://www.yqcq.gov.cn/e/space/?userid=602715&dmrg=20160915Lj0Gt.html
http://www.yqcq.gov.cn/e/space/?userid=602721&vzek=20160915Sr2Lf.html
http://www.yqcq.gov.cn/e/space/?userid=602727&xexs=20160915Bz1Xj.html
http://www.yqcq.gov.cn/e/space/?userid=602729&vghq=20160915Rn8Xc.html
http://www.yqcq.gov.cn/e/space/?userid=602735&rfwc=20160915Jo2Ys.html
http://www.yqcq.gov.cn/e/space/?userid=602737&ulqh=20160915Sa9Dv.html
http://www.yqcq.gov.cn/e/space/?userid=602743&qkaz=20160915Uc0Ei.html
http://www.yqcq.gov.cn/e/space/?userid=602747&emcc=20160915Cs3Pn.html
http://www.yqcq.gov.cn/e/space/?userid=602749&mfrf=20160915Fh6Zu.html
http://www.yqcq.gov.cn/e/space/?userid=602755&tkuu=20160915Ah1Hn.html
http://www.yqcq.gov.cn/e/space/?userid=602757&fsov=20160915We0Qc.html
http://www.yqcq.gov.cn/e/space/?userid=602762&lfdv=20160915Dx2Ad.html
http://www.yqcq.gov.cn/e/space/?userid=602767&jxuc=20160915Es3Rg.html
http://www.yqcq.gov.cn/e/space/?userid=602770&fiej=20160915Lb0Gm.html
http://www.yqcq.gov.cn/e/space/?userid=602774&yaqe=20160915Tn1Th.html
http://www.yqcq.gov.cn/e/space/?userid=602779&kngu=20160915Ll2Rx.html
http://www.yqcq.gov.cn/e/space/?userid=602783&iyve=20160915Tf7Xr.html
http://www.yqcq.gov.cn/e/space/?userid=602789&jivg=20160915Ym5Gq.html
http://www.yqcq.gov.cn/e/space/?userid=602791&i=20160915Fu4Uk.html
http://www.yqcq.gov.cn/e/space/?userid=602796&bqae=20160915Gm4Us.html
http://www.yqcq.gov.cn/e/space/?userid=602802&prvs=20160915Qu8Kk.html
http://www.yqcq.gov.cn/e/space/?userid=602804&xnfr=20160915Ju5Jy.html
http://www.yqcq.gov.cn/e/space/?userid=602809&ocfj=20160915Xp7Bg.html
http://www.yqcq.gov.cn/e/space/?userid=602811&edjf=20160915Ir1Sr.html
http://www.yqcq.gov.cn/e/space/?userid=602817&izqv=20160915Oy0Eu.html
http://www.yqcq.gov.cn/e/space/?userid=602821&ktyh=20160915Ku6Fg.html
http://www.yqcq.gov.cn/e/space/?userid=602825&ymlz=20160915Au8My.html
http://www.yqcq.gov.cn/e/space/?userid=602831&kufx=20160915St0Rp.html
http://www.yqcq.gov.cn/e/space/?userid=602834&qgmc=20160915Fj5Bp.html
http://www.yqcq.gov.cn/e/space/?userid=602839&hplj=20160915Ai7Yu.html
http://www.yqcq.gov.cn/e/space/?userid=602846&dfxn=20160915Sz1Uz.html
http://www.yqcq.gov.cn/e/space/?userid=602848&zpar=20160915Ql4Yf.html
http://www.yqcq.gov.cn/e/space/?userid=602854&gfdi=20160915Ar3By.html
http://www.yqcq.gov.cn/e/space/?userid=602859&puwa=20160915Wk5Kz.html
http://www.yqcq.gov.cn/e/space/?userid=602861&ezqp=20160915Rt2Ky.html
http://www.yqcq.gov.cn/e/space/?userid=602868&jtis=20160915Uw2Lr.html
http://www.yqcq.gov.cn/e/space/?userid=602869&abwa=20160915Ll8Jy.html
http://www.yqcq.gov.cn/e/space/?userid=602874&hfcl=20160915Yo4Th.html
http://www.yqcq.gov.cn/e/space/?userid=602880&xaro=20160915Hq4Gu.html
http://www.yqcq.gov.cn/e/space/?userid=602881&mrel=20160915Vy3Uq.html
http://www.yqcq.gov.cn/e/space/?userid=602887&uejf=20160915Xy5Cq.html
http://www.yqcq.gov.cn/e/space/?userid=602889&kjez=20160915Xm6Nr.html
http://www.yqcq.gov.cn/e/space/?userid=602894&ufmy=20160915Tw4La.html
http://www.yqcq.gov.cn/e/space/?userid=602898&lixs=20160915Ow0St.html
http://www.yqcq.gov.cn/e/space/?userid=602900&zvak=20160915Dl0Hg.html
http://www.yqcq.gov.cn/e/space/?userid=602905&zymw=20160915Qv1It.html
http://www.yqcq.gov.cn/e/space/?userid=602909&elmf=20160915Pq2Qr.html
http://www.yqcq.gov.cn/e/space/?userid=602913&vrxd=20160915Ld8Vj.html
http://www.yqcq.gov.cn/e/space/?userid=602919&bduk=20160915Gb1Sa.html
http://www.yqcq.gov.cn/e/space/?userid=602921&npsb=20160915Tj4Yw.html
http://www.yqcq.gov.cn/e/space/?userid=602926&ymcf=20160915Ba7Jb.html
http://www.yqcq.gov.cn/e/space/?userid=602929&uddf=20160915Yu7Tv.html
http://www.yqcq.gov.cn/e/space/?userid=602934&cxwe=20160915Ni3Tj.html
http://www.yqcq.gov.cn/e/space/?userid=602939&hbbp=20160915Ji0Xu.html
http://www.yqcq.gov.cn/e/space/?userid=602941&nrmx=20160915Ns0Ow.html
http://www.yqcq.gov.cn/e/space/?userid=602947&cgcu=20160915Qw7Ly.html
http://www.yqcq.gov.cn/e/space/?userid=602950&twsw=20160915Hp0Yo.html
http://www.yqcq.gov.cn/e/space/?userid=602955&csyi=20160915Xv8Bc.html
http://www.yqcq.gov.cn/e/space/?userid=602961&ryhl=20160915Ft4Tc.html
http://www.yqcq.gov.cn/e/space/?userid=602962&ejsu=20160915Jz2Mz.html
http://www.yqcq.gov.cn/e/space/?userid=602968&zpba=20160915Td3Ud.html
http://www.yqcq.gov.cn/e/space/?userid=602971&grnw=20160915Ja3Cj.html
http://www.yqcq.gov.cn/e/space/?userid=602976&hfoa=20160915Dp0Ai.html
http://www.yqcq.gov.cn/e/space/?userid=602982&brhy=20160915Xy9Ft.html
http://www.yqcq.gov.cn/e/space/?userid=602983&awex=20160915Zm0Wl.html
http://www.yqcq.gov.cn/e/space/?userid=602989&uzxt=20160915Jq6Sp.html
http://www.yqcq.gov.cn/e/space/?userid=602992&wbpw=20160915Zs2Pj.html
http://www.yqcq.gov.cn/e/space/?userid=602997&hgoz=20160915Vu6Zx.html
http://www.yqcq.gov.cn/e/space/?userid=603001&omih=20160915Kt0Kr.html
http://www.yqcq.gov.cn/e/space/?userid=603007&gkya=20160915Wi2Pm.html
http://www.yqcq.gov.cn/e/space/?userid=603012&uwhm=20160915Za1Uj.html
http://www.yqcq.gov.cn/e/space/?userid=603015&mwhi=20160915Oo5Ps.html
http://www.yqcq.gov.cn/e/space/?userid=603020&qwhy=20160915Qd1In.html
http://www.yqcq.gov.cn/e/space/?userid=603025&ehgu=20160915Hz9Lo.html
http://www.yqcq.gov.cn/e/space/?userid=603028&zilo=20160915Jl4Og.html
http://www.yqcq.gov.cn/e/space/?userid=603033&vvrt=20160915Sm1Qb.html
http://www.yqcq.gov.cn/e/space/?userid=603036&kelj=20160915Ae9Tx.html
http://www.yqcq.gov.cn/e/space/?userid=603041&zpfr=20160915Mo6Cl.html
http://www.yqcq.gov.cn/e/space/?userid=603046&akde=20160915Sg4Qr.html
http://www.yqcq.gov.cn/e/space/?userid=603049&ehle=20160915Rb2Ze.html
http://www.yqcq.gov.cn/e/space/?userid=603054&qhfm=20160915Gv3Oi.html
http://www.yqcq.gov.cn/e/space/?userid=603057&ignn=20160915Ir5Fy.html
http://www.yqcq.gov.cn/e/space/?userid=603061&weoy=20160915Up8Br.html
http://www.yqcq.gov.cn/e/space/?userid=603067&wzei=20160915Bi9Hk.html
http://www.yqcq.gov.cn/e/space/?userid=603071&fold=20160915Nf7Xh.html
http://www.yqcq.gov.cn/e/space/?userid=603075&mchr=20160915Kh1Ty.html
http://www.yqcq.gov.cn/e/space/?userid=603078&hjfz=20160915Iy7Ke.html
http://www.yqcq.gov.cn/e/space/?userid=603084&wfbk=20160915Py0Pd.html
http://www.yqcq.gov.cn/e/space/?userid=603089&fwzp=20160915Kx4Us.html
http://www.yqcq.gov.cn/e/space/?userid=603092&cxxe=20160915Kw7Wz.html
http://www.yqcq.gov.cn/e/space/?userid=603098&qsmt=20160915Hi6Ea.html
http://www.yqcq.gov.cn/e/space/?userid=603102&cjwe=20160915Qo3Uv.html
http://www.yqcq.gov.cn/e/space/?userid=603106&ewec=20160915Cc4Ec.html
http://www.yqcq.gov.cn/e/space/?userid=603112&nhms=20160915Im7Jo.html
http://www.yqcq.gov.cn/e/space/?userid=603114&hruz=20160915Nj7Yf.html
http://www.yqcq.gov.cn/e/space/?userid=603119&eksi=20160915Lw1Ph.html
http://www.yqcq.gov.cn/e/space/?userid=603124&nxyp=20160915Wo4So.html
http://www.yqcq.gov.cn/e/space/?userid=603128&omdz=20160915Km0Nz.html
http://www.yqcq.gov.cn/e/space/?userid=603132&xqwz=20160915Bv9Se.html
http://www.yqcq.gov.cn/e/space/?userid=603135&wcjh=20160915Dr6Ja.html
http://www.yqcq.gov.cn/e/space/?userid=603141&bnzn=20160915Ty0Lw.html
http://www.yqcq.gov.cn/e/space/?userid=603146&tvzk=20160915Ma9Mc.html
http://www.yqcq.gov.cn/e/space/?userid=603149&zswn=20160915Wd7Hw.html
http://www.yqcq.gov.cn/e/space/?userid=603155&mzni=20160915Pw2Hh.html
http://www.yqcq.gov.cn/e/space/?userid=603158&ijya=20160915Ob2Ib.html
http://www.yqcq.gov.cn/e/space/?userid=603163&paxo=20160915Cu8Xd.html
http://www.yqcq.gov.cn/e/space/?userid=603168&bxal=20160915Rn8Pq.html
http://www.yqcq.gov.cn/e/space/?userid=603171&rmcg=20160915Jw1Iv.html
http://www.yqcq.gov.cn/e/space/?userid=603176&kinh=20160915Hr7Ac.html
http://www.yqcq.gov.cn/e/space/?userid=603182&rdzg=20160915Mu6Kw.html
http://www.yqcq.gov.cn/e/space/?userid=603185&mnob=20160915Vr5Zb.html
http://www.yqcq.gov.cn/e/space/?userid=603190&zjyv=20160915Ff6Sf.html
http://www.yqcq.gov.cn/e/space/?userid=603192&mxyg=20160915Fx9Ln.html
http://www.yqcq.gov.cn/e/space/?userid=603199&jjmp=20160915Qy0Un.html
http://www.yqcq.gov.cn/e/space/?userid=603202&moxv=20160915Kf6Ci.html
http://www.yqcq.gov.cn/e/space/?userid=603208&pwul=20160915Ro1Ry.html
http://www.yqcq.gov.cn/e/space/?userid=603213&ylgw=20160915Mw0Ou.html
http://www.yqcq.gov.cn/e/space/?userid=603216&avmo=20160915Sx4Jq.html
http://www.yqcq.gov.cn/e/space/?userid=603221&ckat=20160915Hq9Lw.html
http://www.yqcq.gov.cn/e/space/?userid=603226&nhif=20160915Gh1Us.html
http://www.yqcq.gov.cn/e/space/?userid=603229&usfi=20160915Ma6Du.html
http://www.yqcq.gov.cn/e/space/?userid=603234&ausn=20160915Bt9Sh.html
http://www.yqcq.gov.cn/e/space/?userid=603237&dmql=20160915Hy3Ns.html
http://www.yqcq.gov.cn/e/space/?userid=603242&aujf=20160915Xg6Fg.html
http://www.yqcq.gov.cn/e/space/?userid=603244&rnsp=20160915Uk5Yu.html
http://www.yqcq.gov.cn/e/space/?userid=603251&olph=20160915Lw6Na.html
http://www.yqcq.gov.cn/e/space/?userid=603257&pohd=20160915Mz4Dj.html
http://www.yqcq.gov.cn/e/space/?userid=603259&qsgt=20160915Ax4Ax.html
http://www.yqcq.gov.cn/e/space/?userid=603265&dbxi=20160915Db5Ie.html
http://www.yqcq.gov.cn/e/space/?userid=603269&lsus=20160915Ji3Fw.html
http://www.yqcq.gov.cn/e/space/?userid=603272&nihj=20160915De9Fb.html
http://www.yqcq.gov.cn/e/space/?userid=603278&theu=20160915Dp6Ym.html
http://www.yqcq.gov.cn/e/space/?userid=603280&oyqx=20160915Yx0Uj.html
http://www.yqcq.gov.cn/e/space/?userid=603284&rakq=20160915Iv9Fv.html
http://www.yqcq.gov.cn/e/space/?userid=603289&jfil=20160915Yz9Wp.html
http://www.yqcq.gov.cn/e/space/?userid=603292&vbgh=20160915Lz2Xv.html
http://www.yqcq.gov.cn/e/space/?userid=603299&rbfj=20160915Ex4Ew.html
http://www.yqcq.gov.cn/e/space/?userid=603303&dajk=20160915Oc7Pe.html
http://www.yqcq.gov.cn/e/space/?userid=603306&qgpt=20160915Bc6Jf.html
http://www.yqcq.gov.cn/e/space/?userid=603311&yvfz=20160915Wa2Up.html
http://www.yqcq.gov.cn/e/space/?userid=603314&bbkk=20160915Ec2Mv.html
http://www.yqcq.gov.cn/e/space/?userid=603319&hain=20160915At1Gt.html
http://www.yqcq.gov.cn/e/space/?userid=603324&trrb=20160915Ep3Mx.html
http://www.yqcq.gov.cn/e/space/?userid=603327&ancw=20160915Vt7Fg.html
http://www.yqcq.gov.cn/e/space/?userid=603332&ipcj=20160915Jf0Tv.html
http://www.yqcq.gov.cn/e/space/?userid=603334&adlb=20160915Qu0Fx.html
http://www.yqcq.gov.cn/e/space/?userid=603340&gdcb=20160915Xm4Iu.html
http://www.yqcq.gov.cn/e/space/?userid=603346&zrti=20160915Wf9Xo.html
http://www.yqcq.gov.cn/e/space/?userid=603349&cwup=20160915Nn3Kb.html
http://www.yqcq.gov.cn/e/space/?userid=603355&taoq=20160915Xk3Oy.html
http://www.yqcq.gov.cn/e/space/?userid=603359&ozfp=20160915Ei1Qc.html
http://www.yqcq.gov.cn/e/space/?userid=603362&iuxk=20160915Lq4Ie.html
http://www.yqcq.gov.cn/e/space/?userid=603367&gcgp=20160915Kc0Zb.html
http://www.yqcq.gov.cn/e/space/?userid=603370&qehb=20160915Gb8Bi.html
http://www.yqcq.gov.cn/e/space/?userid=603376&llto=20160915Dg7Jz.html
http://www.yqcq.gov.cn/e/space/?userid=603378&byhd=20160915Ht9Rk.html
http://www.yqcq.gov.cn/e/space/?userid=603384&mgmk=20160915Hf6At.html
http://www.yqcq.gov.cn/e/space/?userid=603389&glaz=20160915Re5Ib.html
http://www.yqcq.gov.cn/e/space/?userid=603392&wkyf=20160915Bj5Mo.html
http://www.yqcq.gov.cn/e/space/?userid=603398&dzyj=20160915Id2Lv.html
http://www.yqcq.gov.cn/e/space/?userid=603403&qzvz=20160915Sd7Ie.html
http://www.yqcq.gov.cn/e/space/?userid=603405&wukq=20160915Lq0Hp.html
http://www.yqcq.gov.cn/e/space/?userid=603411&qaxm=20160915Yh4Su.html
http://www.yqcq.gov.cn/e/space/?userid=603413&imhl=20160915Zy3Yw.html
http://www.yqcq.gov.cn/e/space/?userid=603419&xmln=20160915Es4Fv.html
http://www.yqcq.gov.cn/e/space/?userid=603424&xuna=20160915Zg6Wh.html
http://www.yqcq.gov.cn/e/space/?userid=603427&dyzs=20160915Xn9Nb.html
http://www.yqcq.gov.cn/e/space/?userid=603432&ntem=20160915Ms7Pn.html
http://www.yqcq.gov.cn/e/space/?userid=603437&maup=20160915Al6Xu.html
http://www.yqcq.gov.cn/e/space/?userid=603440&ideg=20160915Hl0Bf.html
http://www.yqcq.gov.cn/e/space/?userid=603446&ynlw=20160915Ee0St.html
http://www.yqcq.gov.cn/e/space/?userid=603448&qquv=20160915Bc1On.html
http://www.yqcq.gov.cn/e/space/?userid=603453&ttva=20160915Lx7Vy.html
http://www.yqcq.gov.cn/e/space/?userid=603459&yckp=20160915Hb9Es.html
http://www.yqcq.gov.cn/e/space/?userid=603462&ljvo=20160915Ei6Bi.html
http://www.yqcq.gov.cn/e/space/?userid=603468&flap=20160915Fa0Oe.html
http://www.yqcq.gov.cn/e/space/?userid=603470&yeke=20160915Wd9Ep.html
http://www.yqcq.gov.cn/e/space/?userid=603476&waaf=20160915Eb1Fc.html
http://www.yqcq.gov.cn/e/space/?userid=603482&vvdt=20160915Zl6Hd.html
http://www.yqcq.gov.cn/e/space/?userid=603485&swap=20160915Lq6Oe.html
http://www.yqcq.gov.cn/e/space/?userid=603490&lyfi=20160915Gh4Dc.html
http://www.yqcq.gov.cn/e/space/?userid=603495&ceje=20160915Xt2Sm.html
http://www.yqcq.gov.cn/e/space/?userid=603498&xckb=20160915Xb3Jx.html
http://www.yqcq.gov.cn/e/space/?userid=603504&jsgx=20160915Xt4Lc.html
http://www.yqcq.gov.cn/e/space/?userid=603506&zmeu=20160915Og6Ae.html
http://www.yqcq.gov.cn/e/space/?userid=603511&egve=20160915Ll8Ru.html
http://www.yqcq.gov.cn/e/space/?userid=603513&tltf=20160915Oe2Pp.html
http://www.yqcq.gov.cn/e/space/?userid=603519&ovau=20160915Pn5Uv.html
http://www.yqcq.gov.cn/e/space/?userid=603525&lvef=20160915Vj0Vh.html
http://www.yqcq.gov.cn/e/space/?userid=603528&bhru=20160915Gw8Wa.html
http://www.yqcq.gov.cn/e/space/?userid=603534&bddl=20160915Qp2Le.html
http://www.yqcq.gov.cn/e/space/?userid=603540&zdgs=20160915Ni5Cn.html
http://www.yqcq.gov.cn/e/space/?userid=603542&mnwq=20160915Sq4Eo.html
http://www.yqcq.gov.cn/e/space/?userid=603548&tqfd=20160915Os3Du.html
http://www.yqcq.gov.cn/e/space/?userid=603554&eobc=20160915Fg7Rl.html
http://www.yqcq.gov.cn/e/space/?userid=603556&xzli=20160915Sn0Kg.html
http://www.yqcq.gov.cn/e/space/?userid=603562&dffg=20160915Iw6Am.html
http://www.yqcq.gov.cn/e/space/?userid=603567&nxch=20160915Cz7Ww.html
http://www.yqcq.gov.cn/e/space/?userid=603569&htdc=20160915Td0Rq.html
http://www.yqcq.gov.cn/e/space/?userid=603575&yhzz=20160915Nr6Bx.html
http://www.yqcq.gov.cn/e/space/?userid=603577&lqei=20160915Pm6Uv.html
http://www.yqcq.gov.cn/e/space/?userid=603584&qdxd=20160915Ft3Hk.html
http://www.yqcq.gov.cn/e/space/?userid=603589&yalg=20160915Ab1Ep.html
http://www.yqcq.gov.cn/e/space/?userid=603591&tldb=20160915Rs4Ac.html
http://www.yqcq.gov.cn/e/space/?userid=603597&quac=20160915Ah0Al.html
http://www.yqcq.gov.cn/e/space/?userid=603600&dvvd=20160915Ng4Pc.html
http://www.yqcq.gov.cn/e/space/?userid=603604&mpys=20160915Me0Fl.html
http://www.yqcq.gov.cn/e/space/?userid=603610&ququ=20160915Fj1Yd.html
http://www.yqcq.gov.cn/e/space/?userid=603614&kiuv=20160915Wf6Kp.html
http://www.yqcq.gov.cn/e/space/?userid=603619&bwrd=20160915Fj8Nm.html
http://www.yqcq.gov.cn/e/space/?userid=603621&mdzh=20160915Qi7Vd.html
http://www.yqcq.gov.cn/e/space/?userid=603626&matt=20160915Ch0Gp.html
http://www.yqcq.gov.cn/e/space/?userid=603632&ckhp=20160915Ch0Mu.html
http://www.yqcq.gov.cn/e/space/?userid=603633&juvi=20160915Yk8Hi.html
http://www.yqcq.gov.cn/e/space/?userid=603639&tgpv=20160915Wv0Fa.html
http://www.yqcq.gov.cn/e/space/?userid=603642&pjzn=20160915Sj5Lg.html
http://www.yqcq.gov.cn/e/space/?userid=603647&leub=20160915Gs9Qp.html
http://www.yqcq.gov.cn/e/space/?userid=603652&kmwd=20160915Qr7Az.html
http://www.yqcq.gov.cn/e/space/?userid=603654&juqw=20160915Ob0Rz.html
http://www.yqcq.gov.cn/e/space/?userid=603658&dloa=20160915Dg1Ez.html
http://www.yqcq.gov.cn/e/space/?userid=603664&gysp=20160915Wq9Cy.html
http://www.yqcq.gov.cn/e/space/?userid=603667&npkk=20160915Ug2Zp.html
http://www.yqcq.gov.cn/e/space/?userid=603672&ihde=20160915Ef5Xr.html
http://www.yqcq.gov.cn/e/space/?userid=603675&owvi=20160915Zm1Yf.html
http://www.yqcq.gov.cn/e/space/?userid=603680&kzme=20160915Gi7Ux.html
http://www.yqcq.gov.cn/e/space/?userid=603687&pzbf=20160915Qt3Ou.html
http://www.yqcq.gov.cn/e/space/?userid=603690&txpz=20160915Ma8Im.html
http://www.yqcq.gov.cn/e/space/?userid=603695&ebbi=20160915By5Mn.html
http://www.yqcq.gov.cn/e/space/?userid=603698&avzs=20160915Ef4Ph.html
http://www.yqcq.gov.cn/e/space/?userid=603703&lfld=20160915Nv8Sw.html
http://www.yqcq.gov.cn/e/space/?userid=603709&jfcj=20160915Mu2Nc.html
http://www.yqcq.gov.cn/e/space/?userid=603711&tdlb=20160915Gz9Vm.html
http://www.yqcq.gov.cn/e/space/?userid=603716&zzwe=20160915Be9Hn.html
http://www.yqcq.gov.cn/e/space/?userid=603719&hwse=20160915Gy0Vi.html
http://www.yqcq.gov.cn/e/space/?userid=603725&mprr=20160915Oa8Oz.html
http://www.yqcq.gov.cn/e/space/?userid=603731&hisl=20160915Uj0Ix.html
http://www.yqcq.gov.cn/e/space/?userid=603732&cyke=20160915Zt8Nm.html
http://www.yqcq.gov.cn/e/space/?userid=603738&kjkv=20160915Zw2Gp.html
http://www.yqcq.gov.cn/e/space/?userid=603740&tnbi=20160915Kl5Mg.html
http://www.yqcq.gov.cn/e/space/?userid=603745&pvbj=20160915Nq0Qz.html
http://www.yqcq.gov.cn/e/space/?userid=603751&wdgz=20160915Gx8Lw.html
http://www.yqcq.gov.cn/e/space/?userid=603754&evad=20160915Rg7Zi.html
http://www.yqcq.gov.cn/e/space/?userid=603758&ljge=20160915Ee2Uo.html
http://www.yqcq.gov.cn/e/space/?userid=603761&plxp=20160915Yf5Xg.html
http://www.yqcq.gov.cn/e/space/?userid=603766&bqxt=20160915Pb7Bb.html
http://www.yqcq.gov.cn/e/space/?userid=603772&zicb=20160915Yi6Tc.html
http://www.yqcq.gov.cn/e/space/?userid=603774&ijsb=20160915Kq3Sh.html
http://www.yqcq.gov.cn/e/space/?userid=603778&sbfu=20160915Fe2Yv.html
http://www.yqcq.gov.cn/e/space/?userid=603783&rzyu=20160915Wp8Ws.html
http://www.yqcq.gov.cn/e/space/?userid=603785&gapc=20160915Cs9Ep.html
http://www.yqcq.gov.cn/e/space/?userid=603791&wibp=20160915Eg3Mv.html
http://www.yqcq.gov.cn/e/space/?userid=603793&dkzj=20160915Sz7Tc.html
http://www.yqcq.gov.cn/e/space/?userid=603799&bbml=20160915Gw7Li.html
http://www.yqcq.gov.cn/e/space/?userid=603804&mtcn=20160915Nw2Bd.html
http://www.yqcq.gov.cn/e/space/?userid=603807&imgo=20160915Rz2Tl.html
http://www.yqcq.gov.cn/e/space/?userid=603812&mmaj=20160915Eb4Xr.html
http://www.yqcq.gov.cn/e/space/?userid=603815&mndv=20160915Yt0Yk.html
http://www.yqcq.gov.cn/e/space/?userid=603821&wqeo=20160915Wy0Is.html
http://www.yqcq.gov.cn/e/space/?userid=603826&xpww=20160915Fw4Vp.html
http://www.yqcq.gov.cn/e/space/?userid=603829&mudr=20160915Ea8Vn.html
http://www.yqcq.gov.cn/e/space/?userid=603835&xtjd=20160915Xn6Hk.html
http://www.yqcq.gov.cn/e/space/?userid=603836&lvto=20160915Yk4Mz.html
http://www.yqcq.gov.cn/e/space/?userid=603842&rhuz=20160915Cb3Zf.html
http://www.yqcq.gov.cn/e/space/?userid=603847&glnw=20160915Us5Hs.html
http://www.yqcq.gov.cn/e/space/?userid=603850&xcgc=20160915Gc7Jm.html
http://www.yqcq.gov.cn/e/space/?userid=603856&tewh=20160915Qv9Jq.html
http://www.yqcq.gov.cn/e/space/?userid=603858&fekq=20160915Od5Eo.html
http://www.yqcq.gov.cn/e/space/?userid=603865&yfne=20160915Mc5Ei.html
http://www.yqcq.gov.cn/e/space/?userid=603870&xxtx=20160915Yj4Zl.html
http://www.yqcq.gov.cn/e/space/?userid=603872&ywlb=20160915Zn9Hf.html
http://www.yqcq.gov.cn/e/space/?userid=603878&olsc=20160915Zd5So.html
http://www.yqcq.gov.cn/e/space/?userid=603883&uyzu=20160915Pl1Io.html
http://www.yqcq.gov.cn/e/space/?userid=603886&rjsy=20160915Ut4Jy.html
http://www.yqcq.gov.cn/e/space/?userid=603891&pkfp=20160915Vq3As.html
http://www.yqcq.gov.cn/e/space/?userid=603894&icon=20160915Zz3Kc.html
http://www.yqcq.gov.cn/e/space/?userid=603900&bcgb=20160915Bl9Ul.html
http://www.yqcq.gov.cn/e/space/?userid=603905&djbb=20160915Xk7Pv.html
http://www.yqcq.gov.cn/e/space/?userid=603906&uhcs=20160915Vb0We.html
http://www.yqcq.gov.cn/e/space/?userid=603912&ortd=20160915Cl8Kb.html
http://www.yqcq.gov.cn/e/space/?userid=603915&rtzn=20160915Qp1Wz.html
http://www.yqcq.gov.cn/e/space/?userid=603921&dibv=20160915Zj1Iz.html
http://www.yqcq.gov.cn/e/space/?userid=603926&uiqi=20160915Qn8Xi.html
http://www.yqcq.gov.cn/e/space/?userid=603929&lrog=20160915Ij7Oq.html
http://www.yqcq.gov.cn/e/space/?userid=603934&hsrq=20160915De6Vy.html
http://www.yqcq.gov.cn/e/space/?userid=603937&wmql=20160915Vn5Xj.html
http://www.yqcq.gov.cn/e/space/?userid=603942&czan=20160915Kp2Ox.html
http://www.yqcq.gov.cn/e/space/?userid=603948&zgji=20160915Vl1Df.html
http://www.yqcq.gov.cn/e/space/?userid=603949&dihb=20160915Ul0Zd.html
http://www.yqcq.gov.cn/e/space/?userid=603955&lmio=20160915Xr4Yj.html
http://www.yqcq.gov.cn/e/space/?userid=603958&bvuo=20160915Yz3Gk.html
http://www.yqcq.gov.cn/e/space/?userid=603963&ywfh=20160915Ie3Cy.html
http://www.yqcq.gov.cn/e/space/?userid=603969&ulsf=20160915Bl1Ck.html
http://www.yqcq.gov.cn/e/space/?userid=603972&absn=20160915Jj0Te.html
http://www.yqcq.gov.cn/e/space/?userid=603978&kzvz=20160915Vx9Px.html
http://www.yqcq.gov.cn/e/space/?userid=603981&tdfa=20160915Ha6Nb.html
http://www.yqcq.gov.cn/e/space/?userid=603985&uqrr=20160915Xh8Xc.html
http://www.yqcq.gov.cn/e/space/?userid=603991&flvi=20160915Ay2By.html
http://www.yqcq.gov.cn/e/space/?userid=603993&wvfx=20160915Hc4Tc.html
http://www.yqcq.gov.cn/e/space/?userid=603999&jznn=20160915Zr4Dc.html
http://www.yqcq.gov.cn/e/space/?userid=604001&ruyf=20160915Fh1Uz.html
http://www.yqcq.gov.cn/e/space/?userid=604006&llff=20160915Hj4Cu.html
http://www.yqcq.gov.cn/e/space/?userid=604012&emld=20160915Sl8Cz.html
http://www.yqcq.gov.cn/e/space/?userid=604015&ufgv=20160915Oo2Tm.html
http://www.yqcq.gov.cn/e/space/?userid=604021&dkez=20160915Di0Fi.html
http://www.yqcq.gov.cn/e/space/?userid=604023&gker=20160915Re0Ml.html
http://www.yqcq.gov.cn/e/space/?userid=604029&frnf=20160915Xb0Ch.html
http://www.yqcq.gov.cn/e/space/?userid=604034&zvfs=20160915Rr5Vx.html
http://www.yqcq.gov.cn/e/space/?userid=604037&ojmi=20160915Nl0Fp.html
http://www.yqcq.gov.cn/e/space/?userid=604042&kryt=20160915Vl2Uz.html
http://www.yqcq.gov.cn/e/space/?userid=604048&qerr=20160915Ff5Rm.html
http://www.yqcq.gov.cn/e/space/?userid=604051&ckyx=20160915Co2Dt.html
http://www.yqcq.gov.cn/e/space/?userid=604056&onzi=20160915Is1Vh.html
http://www.yqcq.gov.cn/e/space/?userid=604059&ynpo=20160915Ce6Tu.html
http://www.yqcq.gov.cn/e/space/?userid=604065&ypux=20160915Io0Ju.html
http://www.yqcq.gov.cn/e/space/?userid=604071&urmo=20160915Bj0Uc.html
http://www.yqcq.gov.cn/e/space/?userid=604074&njal=20160915Co7It.html
http://www.yqcq.gov.cn/e/space/?userid=604078&nbye=20160915Ll7Xh.html
http://www.yqcq.gov.cn/e/space/?userid=604081&okqk=20160915Hk7Gr.html
http://www.yqcq.gov.cn/e/space/?userid=604087&ovwq=20160915Qr6Zn.html
http://www.yqcq.gov.cn/e/space/?userid=604092&niry=20160915Za9Kc.html
http://www.yqcq.gov.cn/e/space/?userid=604095&tplj=20160915Yy3Wb.html
http://www.yqcq.gov.cn/e/space/?userid=604101&krtf=20160915Ty4Sz.html
http://www.yqcq.gov.cn/e/space/?userid=604102&crez=20160915Fw1Xf.html
http://www.yqcq.gov.cn/e/space/?userid=604108&miwc=20160915Or2Va.html
http://www.yqcq.gov.cn/e/space/?userid=604113&aevu=20160915Dl2Tw.html
http://www.yqcq.gov.cn/e/space/?userid=604116&ncza=20160915Eg7Og.html
http://www.yqcq.gov.cn/e/space/?userid=604122&xahy=20160915Jq5Bk.html
http://www.yqcq.gov.cn/e/space/?userid=604124&bbyo=20160915Ak6Ko.html
http://www.yqcq.gov.cn/e/space/?userid=604130&kbuv=20160915Nx6Tv.html
http://www.yqcq.gov.cn/e/space/?userid=604135&mzaj=20160915Vy9Jy.html
http://www.yqcq.gov.cn/e/space/?userid=604138&egkt=20160915Uq9Za.html
http://www.yqcq.gov.cn/e/space/?userid=604144&gzjy=20160915Js0Eq.html
http://www.yqcq.gov.cn/e/space/?userid=604146&wyyk=20160915Yv9Wn.html
http://www.yqcq.gov.cn/e/space/?userid=604152&ajyv=20160915Te7Fv.html
http://www.yqcq.gov.cn/e/space/?userid=604156&tthz=20160915Ts2Dk.html
http://www.yqcq.gov.cn/e/space/?userid=604159&ceyk=20160915Hf9On.html
http://www.yqcq.gov.cn/e/space/?userid=604165&brwa=20160915Lz5Eq.html
http://www.yqcq.gov.cn/e/space/?userid=604167&xvdr=20160915Ml3Oj.html
http://www.yqcq.gov.cn/e/space/?userid=604173&cwfw=20160915Iq5Pj.html
http://www.yqcq.gov.cn/e/space/?userid=604178&cfgn=20160915Mg2Lf.html
http://www.yqcq.gov.cn/e/space/?userid=604182&rrav=20160915Ps6In.html
http://www.yqcq.gov.cn/e/space/?userid=604188&jbtz=20160915Aj8Kt.html
http://www.yqcq.gov.cn/e/space/?userid=604193&clrt=20160915Yq1Tn.html
http://www.yqcq.gov.cn/e/space/?userid=604195&iyhs=20160915Jy9Kn.html
http://www.yqcq.gov.cn/e/space/?userid=604200&mksv=20160915Rv9Np.html
http://www.yqcq.gov.cn/e/space/?userid=604203&mqrv=20160915Yu1Qb.html
http://www.yqcq.gov.cn/e/space/?userid=604209&uylg=20160915Jr8Qs.html
http://www.yqcq.gov.cn/e/space/?userid=604214&wzsh=20160915Bn8Wz.html
http://www.yqcq.gov.cn/e/space/?userid=604217&skgf=20160915Gc6Bs.html
http://www.yqcq.gov.cn/e/space/?userid=604223&ilfe=20160915Vl2Qs.html
http://www.yqcq.gov.cn/e/space/?userid=604229&pdsp=20160915Bx1Ba.html
http://www.yqcq.gov.cn/e/space/?userid=604232&yvle=20160915Lo5Vz.html
http://www.yqcq.gov.cn/e/space/?userid=604238&mqzd=20160915Za9Ir.html
http://www.yqcq.gov.cn/e/space/?userid=604240&spzx=20160915Ff8Nc.html
http://www.yqcq.gov.cn/e/space/?userid=604245&zevs=20160915Ei0Wg.html
http://www.yqcq.gov.cn/e/space/?userid=604250&wcag=20160915Kk5Ro.html
http://www.yqcq.gov.cn/e/space/?userid=604253&juoo=20160915Xi2Pi.html
http://www.yqcq.gov.cn/e/space/?userid=604259&oars=20160915Fs6Bk.html
http://www.yqcq.gov.cn/e/space/?userid=604264&zfsf=20160915An5Cq.html
http://www.yqcq.gov.cn/e/space/?userid=604266&bgac=20160915Nu8Jf.html
http://www.yqcq.gov.cn/e/space/?userid=604272&xavf=20160915Pe3Ul.html
http://www.yqcq.gov.cn/e/space/?userid=604275&mdtr=20160915Ex8Bg.html
http://www.yqcq.gov.cn/e/space/?userid=604280&yfhm=20160915Bq0Fc.html
http://www.yqcq.gov.cn/e/space/?userid=604285&gwer=20160915Sb1Em.html
http://www.yqcq.gov.cn/e/space/?userid=604288&wmak=20160915Jh3Ix.html
http://www.yqcq.gov.cn/e/space/?userid=604292&hreb=20160915Cx7Jm.html
http://www.yqcq.gov.cn/e/space/?userid=604295&himr=20160915Px1Ku.html
http://www.yqcq.gov.cn/e/space/?userid=604301&pqjz=20160915Lq0Bh.html
http://www.yqcq.gov.cn/e/space/?userid=604306&mexi=20160915Gs4Lj.html
http://www.yqcq.gov.cn/e/space/?userid=604308&daxs=20160915Fa0Qq.html
http://www.yqcq.gov.cn/e/space/?userid=604314&nkue=20160915Ou3Gg.html
http://www.yqcq.gov.cn/e/space/?userid=604317&sysg=20160915Qp3Cv.html
http://www.yqcq.gov.cn/e/space/?userid=604322&yrbv=20160915Sa9Xi.html
http://www.yqcq.gov.cn/e/space/?userid=604324&dvfp=20160915Ur3Cs.html
http://www.yqcq.gov.cn/e/space/?userid=604329&nsem=20160915Kz8Ur.html
http://www.yqcq.gov.cn/e/space/?userid=604335&ysfn=20160915Ez7Pe.html
http://www.yqcq.gov.cn/e/space/?userid=604337&nheq=20160915Qw1Iu.html
http://www.yqcq.gov.cn/e/space/?userid=604342&ifkl=20160915Ou5Mu.html
http://www.yqcq.gov.cn/e/space/?userid=604348&qalw=20160915Qv9Rm.html
http://www.yqcq.gov.cn/e/space/?userid=604351&jgda=20160915Sd2Bd.html
http://www.yqcq.gov.cn/e/space/?userid=604356&xjqg=20160915Ui2Co.html
http://www.yqcq.gov.cn/e/space/?userid=604359&haqp=20160915Ga5Kk.html
http://www.yqcq.gov.cn/e/space/?userid=604363&jsvh=20160915Ef9Ye.html
http://www.yqcq.gov.cn/e/space/?userid=604369&uddh=20160915It6Uk.html
http://www.yqcq.gov.cn/e/space/?userid=604370&kqke=20160915Dt6Bn.html
http://www.yqcq.gov.cn/e/space/?userid=604375&vnqq=20160915Og5Lj.html
http://www.yqcq.gov.cn/e/space/?userid=604377&dyag=20160915Pv3Tr.html
http://www.yqcq.gov.cn/e/space/?userid=604381&ituv=20160915Qs7Gm.html
http://www.yqcq.gov.cn/e/space/?userid=604386&kyat=20160915Yu6Rv.html
http://www.yqcq.gov.cn/e/space/?userid=604388&lffd=20160915Nc8Pj.html
http://www.yqcq.gov.cn/e/space/?userid=604392&zosf=20160915Hi4Lg.html
http://www.yqcq.gov.cn/e/space/?userid=604394&dyhv=20160915Nf6Af.html
http://www.yqcq.gov.cn/e/space/?userid=604398&ssdk=20160915Kn7Vq.html
http://www.yqcq.gov.cn/e/space/?userid=604403&ylzw=20160915Of1Fi.html
http://www.yqcq.gov.cn/e/space/?userid=604404&ylou=20160915Tj3Tl.html
http://www.yqcq.gov.cn/e/space/?userid=604409&brbw=20160915Hb4Es.html
http://www.yqcq.gov.cn/e/space/?userid=604414&xlpe=20160915Uf5Wl.html
http://www.yqcq.gov.cn/e/space/?userid=604416&uwrz=20160915Yi6Pg.html
http://www.yqcq.gov.cn/e/space/?userid=604421&rbtz=20160915Dd9Jq.html
http://www.yqcq.gov.cn/e/space/?userid=604423&asoe=20160915Bf9Pu.html
http://www.yqcq.gov.cn/e/space/?userid=604427&riag=20160915Gd1Ih.html
http://www.yqcq.gov.cn/e/space/?userid=604433&skdx=20160915Gb4Bu.html
http://www.yqcq.gov.cn/e/space/?userid=604435&niyi=20160915Bn8Ii.html
http://www.yqcq.gov.cn/e/space/?userid=604441&innz=20160915To3Jq.html
http://www.yqcq.gov.cn/e/space/?userid=604442&iuyl=20160915Ac7Fi.html
http://www.yqcq.gov.cn/e/space/?userid=604448&uqfh=20160915Vk6Fx.html
http://www.yqcq.gov.cn/e/space/?userid=604454&hulp=20160915Ki5Dt.html
http://www.yqcq.gov.cn/e/space/?userid=604456&eloo=20160915Fw6Zv.html
http://www.yqcq.gov.cn/e/space/?userid=604461&lpcg=20160915Bc5Nv.html
http://www.yqcq.gov.cn/e/space/?userid=604463&wghd=20160915Yk8Bp.html
http://www.yqcq.gov.cn/e/space/?userid=604468&adcc=20160915Nf3Bn.html
http://www.yqcq.gov.cn/e/space/?userid=604473&iurm=20160915Ec0Vl.html
http://www.yqcq.gov.cn/e/space/?userid=604475&uypm=20160915Nx2Bb.html
http://www.yqcq.gov.cn/e/space/?userid=604479&xfth=20160915Mz6Ra.html
http://www.yqcq.gov.cn/e/space/?userid=604481&nmmd=20160915Yv9Nb.html
http://www.yqcq.gov.cn/e/space/?userid=604486&rgad=20160915Ir2Gl.html
http://www.yqcq.gov.cn/e/space/?userid=604491&piws=20160915Fp4Ew.html
http://www.yqcq.gov.cn/e/space/?userid=604493&xwiu=20160915Kr6Yv.html
http://www.yqcq.gov.cn/e/space/?userid=604498&epcb=20160915Ci0Wr.html
http://www.yqcq.gov.cn/e/space/?userid=604501&vihk=20160915Ca7Vz.html
http://www.yqcq.gov.cn/e/space/?userid=604508&rmzz=20160915Kr2Ha.html
http://www.yqcq.gov.cn/e/space/?userid=604513&gmcp=20160915Tk1Zl.html
http://www.yqcq.gov.cn/e/space/?userid=604515&uqzu=20160915Cl0Ag.html
http://www.yqcq.gov.cn/e/space/?userid=604520&pudq=20160915Cc7Bc.html
http://www.yqcq.gov.cn/e/space/?userid=604523&jfns=20160915El8Qs.html
http://www.yqcq.gov.cn/e/space/?userid=604528&tkyr=20160915Ym9Yw.html
http://www.yqcq.gov.cn/e/space/?userid=604534&ancd=20160915Od5Kl.html
http://www.yqcq.gov.cn/e/space/?userid=604536&ruus=20160915Gn8Su.html
http://www.yqcq.gov.cn/e/space/?userid=604541&bxvq=20160915Ik1Vd.html
http://www.yqcq.gov.cn/e/space/?userid=604546&tuhv=20160915Wy8Dw.html
http://www.yqcq.gov.cn/e/space/?userid=604548&xita=20160915Za4Ql.html
http://www.yqcq.gov.cn/e/space/?userid=604553&zclx=20160915Vc8To.html
http://www.yqcq.gov.cn/e/space/?userid=604556&rxly=20160915Au5Xq.html
http://www.yqcq.gov.cn/e/space/?userid=604561&wdxk=20160915Gs9Oc.html
http://www.yqcq.gov.cn/e/space/?userid=604567&tgyl=20160915Vt1Zz.html
http://www.yqcq.gov.cn/e/space/?userid=604570&ribq=20160915Yv4Ib.html
http://www.yqcq.gov.cn/e/space/?userid=604574&hcbf=20160915Go2Yt.html
http://www.yqcq.gov.cn/e/space/?userid=604580&ehik=20160915Jm9Nu.html
http://www.yqcq.gov.cn/e/space/?userid=604582&afdk=20160915An3Ym.html
http://www.yqcq.gov.cn/e/space/?userid=604587&zlrl=20160915Ft5Wo.html
http://www.yqcq.gov.cn/e/space/?userid=604590&sdio=20160915Dh3Cj.html
http://www.yqcq.gov.cn/e/space/?userid=604595&klvy=20160915Mp4Ln.html
http://www.yqcq.gov.cn/e/space/?userid=604601&dfac=20160915It5Jh.html
http://www.yqcq.gov.cn/e/space/?userid=604607&tpsf=20160915Yw8Us.html
http://www.yqcq.gov.cn/e/space/?userid=604610&fxyw=20160915Hi4Gv.html
http://www.yqcq.gov.cn/e/space/?userid=604614&soli=20160915Eq5Hi.html
http://www.yqcq.gov.cn/e/space/?userid=604620&frbz=20160915Bv9Gt.html
http://www.yqcq.gov.cn/e/space/?userid=604623&zmvy=20160915Xc5Fs.html
http://www.yqcq.gov.cn/e/space/?userid=604627&dmds=20160915Dk6Fg.html
http://www.yqcq.gov.cn/e/space/?userid=604630&tlwj=20160915Qt5Df.html
http://www.yqcq.gov.cn/e/space/?userid=604634&zrkw=20160915Bf8Hj.html
http://www.yqcq.gov.cn/e/space/?userid=604640&irgl=20160915Da7Qx.html
http://www.yqcq.gov.cn/e/space/?userid=604643&fjgw=20160915Ml8Xt.html
http://www.yqcq.gov.cn/e/space/?userid=604648&wrnm=20160915Bn9Xa.html
http://www.yqcq.gov.cn/e/space/?userid=604653&zkla=20160915Ed6At.html
http://www.yqcq.gov.cn/e/space/?userid=604656&msyz=20160915It5Iz.html
http://www.yqcq.gov.cn/e/space/?userid=604661&wxbb=20160915Ql2Ww.html
http://www.yqcq.gov.cn/e/space/?userid=604663&tmxs=20160915Ef7Bf.html
http://www.yqcq.gov.cn/e/space/?userid=604669&dzoz=20160915Ln9Kd.html
http://www.yqcq.gov.cn/e/space/?userid=604673&clzu=20160915Sl7Uq.html
http://www.yqcq.gov.cn/e/space/?userid=604675&kzmj=20160915Ut2Xn.html
http://www.yqcq.gov.cn/e/space/?userid=604680&zxpa=20160915Wh9Zg.html
http://www.yqcq.gov.cn/e/space/?userid=604682&exuo=20160915Eo0Aq.html
http://www.yqcq.gov.cn/e/space/?userid=604688&nddi=20160915Xh9Fb.html
http://www.yqcq.gov.cn/e/space/?userid=604692&nhet=20160915Qt1Da.html
http://www.yqcq.gov.cn/e/space/?userid=604698&ukxv=20160915Mg2Zq.html
http://www.yqcq.gov.cn/e/space/?userid=604699&jtms=20160915Wf6Tr.html
http://www.yqcq.gov.cn/e/space/?userid=604705&tyka=20160915Po4Wa.html
http://www.yqcq.gov.cn/e/space/?userid=604707&gsnc=20160915Kv4Ue.html
http://www.yqcq.gov.cn/e/space/?userid=604713&lgux=20160915Pd1Uh.html
http://www.yqcq.gov.cn/e/space/?userid=604719&gpld=20160915Xz1Sf.html
http://www.yqcq.gov.cn/e/space/?userid=604720&jkor=20160915Fr4My.html
http://www.yqcq.gov.cn/e/space/?userid=604726&cnzg=20160915Lh7Uj.html
http://www.yqcq.gov.cn/e/space/?userid=604731&iayw=20160915Ig9Ko.html
http://www.yqcq.gov.cn/e/space/?userid=604735&omor=20160915Ku5Tf.html
http://www.yqcq.gov.cn/e/space/?userid=604741&qzqt=20160915Id9Gc.html
http://www.yqcq.gov.cn/e/space/?userid=604743&wytk=20160915Qd5Cc.html
http://www.yqcq.gov.cn/e/space/?userid=604748&wvzs=20160915Ul7Yp.html
http://www.yqcq.gov.cn/e/space/?userid=604754&kodo=20160915Nt5Sa.html
http://www.yqcq.gov.cn/e/space/?userid=604756&sviw=20160915Ds1Fp.html
http://www.yqcq.gov.cn/e/space/?userid=604762&vdre=20160915Ay8Ig.html
http://www.yqcq.gov.cn/e/space/?userid=604763&hcwt=20160915Op1Kl.html
http://www.yqcq.gov.cn/e/space/?userid=604769&wlmn=20160915Cl5Qt.html
http://www.yqcq.gov.cn/e/space/?userid=604775&hfhd=20160915Ed7Ik.html
http://www.yqcq.gov.cn/e/space/?userid=604777&cbzz=20160915Qz4Lz.html
http://www.yqcq.gov.cn/e/space/?userid=604782&ehsv=20160915Dg5Ws.html
http://www.yqcq.gov.cn/e/space/?userid=604787&eikr=20160915Vs8Gn.html
http://www.yqcq.gov.cn/e/space/?userid=604789&ctkl=20160915Sz0Eu.html
http://www.yqcq.gov.cn/e/space/?userid=604794&aogj=20160915Kz8Eu.html
http://www.yqcq.gov.cn/e/space/?userid=604797&cnqk=20160915Xs3Qq.html
http://www.yqcq.gov.cn/e/space/?userid=604802&nlgk=20160915Mh5Wb.html
http://www.yqcq.gov.cn/e/space/?userid=604808&pjug=20160915Rp7Hq.html
http://www.yqcq.gov.cn/e/space/?userid=604810&szaj=20160915Uq2Cp.html
http://www.yqcq.gov.cn/e/space/?userid=604816&hbnp=20160915Dz5Rd.html
http://www.yqcq.gov.cn/e/space/?userid=604822&kmvt=20160915Tt9Jp.html
http://www.yqcq.gov.cn/e/space/?userid=604825&rsir=20160915Zy9Ov.html
http://www.yqcq.gov.cn/e/space/?userid=604830&twvh=20160915Zy1Cr.html
http://www.yqcq.gov.cn/e/space/?userid=604832&gpfg=20160915Mp9Tb.html
http://www.yqcq.gov.cn/e/space/?userid=604838&jrdd=20160915Wd0Eu.html
http://www.yqcq.gov.cn/e/space/?userid=604844&wtni=20160915Vu5Xq.html
http://www.yqcq.gov.cn/e/space/?userid=604845&xget=20160915Fb7Dp.html
http://www.yqcq.gov.cn/e/space/?userid=604851&kalo=20160915Xy7Lm.html
http://www.yqcq.gov.cn/e/space/?userid=604853&hulm=20160915Ai1Ju.html
http://www.yqcq.gov.cn/e/space/?userid=604859&zprc=20160915Ta6Dl.html
http://www.yqcq.gov.cn/e/space/?userid=604864&gone=20160915Bf3Pr.html
http://www.yqcq.gov.cn/e/space/?userid=604866&ottp=20160915Mx9Rk.html
http://www.yqcq.gov.cn/e/space/?userid=604870&pege=20160915Lj0Kh.html
http://www.yqcq.gov.cn/e/space/?userid=604875&aydy=20160915Dz1Ld.html
http://www.yqcq.gov.cn/e/space/?userid=604878&fnoz=20160915At3Yu.html
http://www.yqcq.gov.cn/e/space/?userid=604884&xodu=20160915Rk3Mm.html
http://www.yqcq.gov.cn/e/space/?userid=604889&bhsp=20160915Ij7Cq.html
http://www.yqcq.gov.cn/e/space/?userid=604892&epwd=20160915Uh3Ga.html
http://www.yqcq.gov.cn/e/space/?userid=604897&riiz=20160915Rt1Lw.html
http://www.yqcq.gov.cn/e/space/?userid=604899&iinz=20160915Bx6Ow.html
http://www.yqcq.gov.cn/e/space/?userid=604904&ctkt=20160915Zh7Rz.html
http://www.yqcq.gov.cn/e/space/?userid=604908&gons=20160915Rt7Wi.html
http://www.yqcq.gov.cn/e/space/?userid=604911&bxhi=20160915Br2Zz.html
http://www.yqcq.gov.cn/e/space/?userid=604915&yufq=20160915Vh9Zx.html
http://www.yqcq.gov.cn/e/space/?userid=604918&pbmm=20160915Td7Qq.html
http://www.yqcq.gov.cn/e/space/?userid=604924&egxe=20160915Ge9Oi.html
http://www.yqcq.gov.cn/e/space/?userid=604928&owpq=20160915Hw0Iz.html
http://www.yqcq.gov.cn/e/space/?userid=604932&qhst=20160915Je9Vx.html
http://www.yqcq.gov.cn/e/space/?userid=604938&mtvw=20160915Ys7Ko.html
http://www.yqcq.gov.cn/e/space/?userid=604942&qfop=20160915Hz8Mj.html
http://www.yqcq.gov.cn/e/space/?userid=604945&taxo=20160915Sh0Mv.html
http://www.yqcq.gov.cn/e/space/?userid=604950&xawo=20160915Go1Xv.html
http://www.yqcq.gov.cn/e/space/?userid=604953&noua=20160915Qx5Xt.html
http://www.yqcq.gov.cn/e/space/?userid=604958&jxks=20160915Fj3Ra.html
http://www.yqcq.gov.cn/e/space/?userid=604963&skkn=20160915Fb8Co.html
http://www.yqcq.gov.cn/e/space/?userid=604966&lpvz=20160915Fz3Qj.html
http://www.yqcq.gov.cn/e/space/?userid=604970&hxxn=20160915Dw8Uu.html
http://www.yqcq.gov.cn/e/space/?userid=604973&kqom=20160915Ae6Tc.html
http://www.yqcq.gov.cn/e/space/?userid=604977&bnus=20160915Xr5Hf.html
http://www.yqcq.gov.cn/e/space/?userid=604983&zcns=20160915Mt9Ip.html
http://www.yqcq.gov.cn/e/space/?userid=604985&rzjz=20160915Tx6Tg.html
http://www.yqcq.gov.cn/e/space/?userid=604990&fkin=20160915Ed6Ly.html
http://www.yqcq.gov.cn/e/space/?userid=604994&krkk=20160915Xh0Fp.html
http://www.yqcq.gov.cn/e/space/?userid=604998&pvgm=20160915Nd8Mb.html
http://www.yqcq.gov.cn/e/space/?userid=605004&dndl=20160915Ts6Ea.html
http://www.yqcq.gov.cn/e/space/?userid=605006&omhp=20160915El9Zh.html
http://www.yqcq.gov.cn/e/space/?userid=605010&gyte=20160915Zs5Co.html
http://www.yqcq.gov.cn/e/space/?userid=605013&idoq=20160915Jr3Zt.html
http://www.yqcq.gov.cn/e/space/?userid=605018&sdzq=20160915Mx9Oy.html
http://www.yqcq.gov.cn/e/space/?userid=605023&sccx=20160915Yn1Pl.html
http://www.yqcq.gov.cn/e/space/?userid=605025&mfmt=20160915Aq5Ah.html
http://www.yqcq.gov.cn/e/space/?userid=605030&iwrr=20160915Tv7Bf.html
http://www.yqcq.gov.cn/e/space/?userid=605033&feis=20160915Gv4St.html
http://www.yqcq.gov.cn/e/space/?userid=605038&rsia=20160915Aq9Mf.html
http://www.yqcq.gov.cn/e/space/?userid=605044&gjxe=20160915Ys4Oh.html
http://www.yqcq.gov.cn/e/space/?userid=605047&sqyg=20160915Lv2Qp.html
http://www.yqcq.gov.cn/e/space/?userid=605052&wmzr=20160915Ym3Zw.html
http://www.yqcq.gov.cn/e/space/?userid=605058&qtvt=20160915Jt6It.html
http://www.yqcq.gov.cn/e/space/?userid=605059&oouk=20160915Ly1Zt.html
http://www.yqcq.gov.cn/e/space/?userid=605064&fqbm=20160915Mn3Ay.html
http://www.yqcq.gov.cn/e/space/?userid=605067&pnev=20160915Wu7Nk.html
http://www.yqcq.gov.cn/e/space/?userid=605073&exyc=20160915Qk3Ba.html
http://www.yqcq.gov.cn/e/space/?userid=605078&xmho=20160915Em4Ip.html
http://www.yqcq.gov.cn/e/space/?userid=605080&qjgh=20160915Ny9Na.html
http://www.yqcq.gov.cn/e/space/?userid=605085&cial=20160915Wa8Ux.html
http://www.yqcq.gov.cn/e/space/?userid=605091&bylt=20160915Ha5Gm.html
http://www.yqcq.gov.cn/e/space/?userid=605093&dqlz=20160915Ea5Fn.html
http://www.yqcq.gov.cn/e/space/?userid=605098&nwfc=20160915Gy0Rg.html
http://www.yqcq.gov.cn/e/space/?userid=605100<sj=20160915Bs8Tb.html
http://www.yqcq.gov.cn/e/space/?userid=605106&rjep=20160915Qw7Pg.html
http://www.yqcq.gov.cn/e/space/?userid=605112&uxoz=20160915Yp8Iq.html
http://www.yqcq.gov.cn/e/space/?userid=605114&zygj=20160915Gn5Ec.html
http://www.yqcq.gov.cn/e/space/?userid=605119&sofy=20160915Ki0Ai.html
http://www.yqcq.gov.cn/e/space/?userid=605124&aczg=20160915Gw8Qx.html
http://www.yqcq.gov.cn/e/space/?userid=605126&xwbk=20160915Ty3Br.html
http://www.yqcq.gov.cn/e/space/?userid=605131&wtyp=20160915Yf0Wn.html
http://www.yqcq.gov.cn/e/space/?userid=605134&ctdo=20160915Bw3Am.html
http://www.yqcq.gov.cn/e/space/?userid=605138&onua=20160915Tr9Eu.html
http://www.yqcq.gov.cn/e/space/?userid=605144&fbwj=20160915Ru1Ho.html
http://www.yqcq.gov.cn/e/space/?userid=605146&xelx=20160915Mo8Fz.html
http://www.yqcq.gov.cn/e/space/?userid=605151&qisc=20160915Qb5Am.html
http://www.yqcq.gov.cn/e/space/?userid=605154&ajes=20160915Re6Mk.html
http://www.yqcq.gov.cn/e/space/?userid=605159&idrb=20160915Wj6Zc.html
http://www.yqcq.gov.cn/e/space/?userid=605164&mqgy=20160915Wz0Sc.html
http://www.yqcq.gov.cn/e/space/?userid=605166&nqzu=20160915Bp3Vf.html
http://www.yqcq.gov.cn/e/space/?userid=605170&uadx=20160915Rm1Do.html
http://www.yqcq.gov.cn/e/space/?userid=605172&smtl=20160915Ty6Dw.html
http://www.yqcq.gov.cn/e/space/?userid=605176&qict=20160915Vk2Iu.html
http://www.yqcq.gov.cn/e/space/?userid=605181&fdfp=20160915Ci3Mh.html
http://www.yqcq.gov.cn/e/space/?userid=605183&nsoi=20160915Nk6We.html
http://www.yqcq.gov.cn/e/space/?userid=605187&dcsr=20160915Sk3Di.html
http://www.yqcq.gov.cn/e/space/?userid=605189&rsnx=20160915Eh9Jv.html
http://www.yqcq.gov.cn/e/space/?userid=605193&kpzr=20160915Gl8Bi.html
http://www.yqcq.gov.cn/e/space/?userid=605198&nvkf=20160915Ch2Wj.html
http://www.yqcq.gov.cn/e/space/?userid=605200&ydqi=20160915Gb5Ut.html
http://www.yqcq.gov.cn/e/space/?userid=605205&zuvu=20160915Nj8Yb.html
http://www.yqcq.gov.cn/e/space/?userid=605208&tuld=20160915Es6Ot.html
http://www.yqcq.gov.cn/e/space/?userid=605212&ppmo=20160915Bp9Wb.html
http://www.yqcq.gov.cn/e/space/?userid=605217&egti=20160915Sx2Tn.html
http://www.yqcq.gov.cn/e/space/?userid=605220&tohy=20160915Vk5Ui.html
http://www.yqcq.gov.cn/e/space/?userid=605224&rkob=20160915Yj1Pb.html
http://www.yqcq.gov.cn/e/space/?userid=605227&rflw=20160915Tp9Nh.html
http://www.yqcq.gov.cn/e/space/?userid=605233&nfwu=20160915Dg2Gu.html
http://www.yqcq.gov.cn/e/space/?userid=605238&ojee=20160915Dc9Tf.html
http://www.yqcq.gov.cn/e/space/?userid=605241&yqxh=20160915Jo4Kw.html
http://www.yqcq.gov.cn/e/space/?userid=605246&brgk=20160915Ig3An.html
http://www.yqcq.gov.cn/e/space/?userid=605248&npag=20160915Ua4Bx.html
http://www.yqcq.gov.cn/e/space/?userid=605254&hpip=20160915Dz3Pu.html
http://www.yqcq.gov.cn/e/space/?userid=605259&bcoj=20160915Zm5Iu.html
http://www.yqcq.gov.cn/e/space/?userid=605261&blai=20160915Ri0Yk.html
http://www.yqcq.gov.cn/e/space/?userid=605266&swhs=20160915Yd6Fl.html
http://www.yqcq.gov.cn/e/space/?userid=605271&fbyz=20160915Yf5Qo.html
http://www.yqcq.gov.cn/e/space/?userid=605274&uuuj=20160915El5Gp.html
http://www.yqcq.gov.cn/e/space/?userid=605280&lqtu=20160915Tq8Wj.html
http://www.yqcq.gov.cn/e/space/?userid=605282&zdzp=20160915Id6Th.html
http://www.yqcq.gov.cn/e/space/?userid=605287&ituc=20160915Hx6Nw.html
http://www.yqcq.gov.cn/e/space/?userid=605292&wjil=20160915Gr2Qb.html
http://www.yqcq.gov.cn/e/space/?userid=605294&jswx=20160915Jb2Td.html
http://www.yqcq.gov.cn/e/space/?userid=605300&xiob=20160915Rd6Ey.html
http://www.yqcq.gov.cn/e/space/?userid=605305&fael=20160915Rx3Em.html
http://www.yqcq.gov.cn/e/space/?userid=605308&gpmk=20160915Nr7Bz.html
http://www.yqcq.gov.cn/e/space/?userid=605313&nzmk=20160915Nw5Ax.html
http://www.yqcq.gov.cn/e/space/?userid=605316&kvmj=20160915Yq0Vq.html
http://www.yqcq.gov.cn/e/space/?userid=605320&erjb=20160915Jk1Gn.html
http://www.yqcq.gov.cn/e/space/?userid=605326&ehfp=20160915Db5Nm.html
http://www.yqcq.gov.cn/e/space/?userid=605327&bxgw=20160915Vy4Xi.html
http://www.yqcq.gov.cn/e/space/?userid=605333&qjsk=20160915Em2Dx.html
http://www.yqcq.gov.cn/e/space/?userid=605336&uwnl=20160915Lj0Fg.html
http://www.yqcq.gov.cn/e/space/?userid=605340&tkcg=20160915Uz3Ts.html
http://www.yqcq.gov.cn/e/space/?userid=605346&dlnt=20160915Do5Cx.html
http://www.yqcq.gov.cn/e/space/?userid=605347&fjjf=20160915Rg7Cm.html
http://www.yqcq.gov.cn/e/space/?userid=605352&nwxm=20160915Xh4Qr.html
http://www.yqcq.gov.cn/e/space/?userid=605354&ytbb=20160915Ul0We.html
http://www.yqcq.gov.cn/e/space/?userid=605360&clbx=20160915Ls2Sq.html
http://www.yqcq.gov.cn/e/space/?userid=605364&ijnc=20160915Kl9Tw.html
http://www.yqcq.gov.cn/e/space/?userid=605367&oovp=20160915Jd6Ns.html
http://www.yqcq.gov.cn/e/space/?userid=605372&zvli=20160915Hz4Le.html
http://www.yqcq.gov.cn/e/space/?userid=605376&clon=20160915Qh7Fy.html
http://www.yqcq.gov.cn/e/space/?userid=605380&iosu=20160915Xz3Ql.html
http://www.yqcq.gov.cn/e/space/?userid=605386&ihse=20160915Gs9Dw.html
http://www.yqcq.gov.cn/e/space/?userid=605388&qmsx=20160915We4Rq.html
http://www.yqcq.gov.cn/e/space/?userid=605394&cwjb=20160915Lw7Xj.html
http://www.yqcq.gov.cn/e/space/?userid=605396&hlop=20160915Qp0Xl.html
http://www.yqcq.gov.cn/e/space/?userid=605401&kaiw=20160915Sp0Al.html
http://www.yqcq.gov.cn/e/space/?userid=605406&atfo=20160915Ll3Vb.html
http://www.yqcq.gov.cn/e/space/?userid=605408&zgwp=20160915Yz5Bo.html
http://www.yqcq.gov.cn/e/space/?userid=605414&nrog=20160915Ic7Jb.html
http://www.yqcq.gov.cn/e/space/?userid=605420&rivv=20160915Sn5Rg.html
http://www.yqcq.gov.cn/e/space/?userid=605422&gqhv=20160915Ys8Pd.html
http://www.yqcq.gov.cn/e/space/?userid=605427&rviw=20160915Vu5Rv.html
http://www.yqcq.gov.cn/e/space/?userid=605429&ezli=20160915Od2Xm.html
http://www.yqcq.gov.cn/e/space/?userid=605435&ixct=20160915Dq9Or.html
http://www.yqcq.gov.cn/e/space/?userid=605439&nvsw=20160915Fm0Ml.html
http://www.yqcq.gov.cn/e/space/?userid=605442&yhyx=20160915Zy9Lj.html
http://www.yqcq.gov.cn/e/space/?userid=605446&jfwc=20160915Hv2Dp.html
http://www.yqcq.gov.cn/e/space/?userid=605449&ozbr=20160915Zb5Fz.html
http://www.yqcq.gov.cn/e/space/?userid=605455&ntdh=20160915Vy4Vx.html
http://www.yqcq.gov.cn/e/space/?userid=605460&kvgv=20160915Mu9Cz.html
http://www.yqcq.gov.cn/e/space/?userid=605463&tord=20160915Ko3Ti.html
http://www.yqcq.gov.cn/e/space/?userid=605467&gjeo=20160915Ho3Oy.html
http://www.yqcq.gov.cn/e/space/?userid=605473&ievf=20160915Lv2Wz.html
http://www.yqcq.gov.cn/e/space/?userid=605476&plzc=20160915Tx1Qw.html
http://www.yqcq.gov.cn/e/space/?userid=605480&srnm=20160915Gw6Qa.html
http://www.yqcq.gov.cn/e/space/?userid=605483&sore=20160915Al2Bw.html
http://www.yqcq.gov.cn/e/space/?userid=605487&fcvd=20160915Py5Ce.html
http://www.yqcq.gov.cn/e/space/?userid=605493&ylru=20160915Mr4Ux.html
http://www.yqcq.gov.cn/e/space/?userid=605494&qwzo=20160915Ok9Nw.html
http://www.yqcq.gov.cn/e/space/?userid=605500&vhup=20160915Ou1On.html
http://www.yqcq.gov.cn/e/space/?userid=605503&trlh=20160915Dg7Qu.html
http://www.yqcq.gov.cn/e/space/?userid=605507&ssik=20160915Nl3Vb.html
http://www.yqcq.gov.cn/e/space/?userid=605514&cmpa=20160915Wy8Ug.html
http://www.yqcq.gov.cn/e/space/?userid=605517&nnxs=20160915Pr6Gl.html
http://www.yqcq.gov.cn/e/space/?userid=605522&cdxp=20160915Sp6Hd.html
http://www.yqcq.gov.cn/e/space/?userid=605528&hunt=20160915Rh6Zv.html
http://www.yqcq.gov.cn/e/space/?userid=605529&gwbx=20160915Pq5Jm.html
http://www.yqcq.gov.cn/e/space/?userid=605535&qmmg=20160915Qz6Es.html
http://www.yqcq.gov.cn/e/space/?userid=605538&hlwn=20160915Bh3Ii.html
http://www.yqcq.gov.cn/e/space/?userid=605542&qxpj=20160915Qh9Hl.html
http://www.yqcq.gov.cn/e/space/?userid=605548&stoi=20160915Zs0Dz.html
http://www.yqcq.gov.cn/e/space/?userid=605551&bxxn=20160915Ik0Ye.html
http://www.yqcq.gov.cn/e/space/?userid=605556&fpvp=20160915Mp7Qt.html
http://www.yqcq.gov.cn/e/space/?userid=605561&bjob=20160915Fr8Tm.html
http://www.yqcq.gov.cn/e/space/?userid=605564&jcoe=20160915Hd4Ma.html
http://www.yqcq.gov.cn/e/space/?userid=605568<kh=20160915Eu6Pj.html
http://www.yqcq.gov.cn/e/space/?userid=605571&ahxb=20160915Ol0Jz.html
http://www.yqcq.gov.cn/e/space/?userid=605576&nzsa=20160915Cy0Uk.html
http://www.yqcq.gov.cn/e/space/?userid=605581&wgru=20160915Pe5Ad.html
http://www.yqcq.gov.cn/e/space/?userid=605584&rmwb=20160915Yo9Gr.html
http://www.yqcq.gov.cn/e/space/?userid=605589&jzto=20160915Ps7Mj.html
http://www.yqcq.gov.cn/e/space/?userid=605591&xxkz=20160915Xi7Bx.html
http://www.yqcq.gov.cn/e/space/?userid=605596&zmzt=20160915We7If.html
http://www.yqcq.gov.cn/e/space/?userid=605600&mdzx=20160915Qu1Zv.html
http://www.yqcq.gov.cn/e/space/?userid=605602&kgjc=20160915Wo7Dm.html
http://www.yqcq.gov.cn/e/space/?userid=605607&rzon=20160915Xc9Ru.html
http://www.yqcq.gov.cn/e/space/?userid=605612&sgpu=20160915Fw6Rs.html
http://www.yqcq.gov.cn/e/space/?userid=605614&flbq=20160915Nm3Cr.html
http://www.yqcq.gov.cn/e/space/?userid=605619&ayes=20160915Sm5Ld.html
http://www.yqcq.gov.cn/e/space/?userid=605621&xwdv=20160915Zn9Bn.html
http://www.yqcq.gov.cn/e/space/?userid=605625&ndcs=20160915Lw6Zj.html
http://www.yqcq.gov.cn/e/space/?userid=605631&ntnv=20160915Iq2As.html
http://www.yqcq.gov.cn/e/space/?userid=605633&ecxe=20160915Hp2Vb.html
http://www.yqcq.gov.cn/e/space/?userid=605638&zeej=20160915Tt1Tq.html
http://www.yqcq.gov.cn/e/space/?userid=605640&xmdm=20160915Xd8Xz.html
http://www.yqcq.gov.cn/e/space/?userid=605644&ifdx=20160915Ks6Sn.html
http://www.yqcq.gov.cn/e/space/?userid=605650&qpuh=20160915Yu9Jj.html
http://www.yqcq.gov.cn/e/space/?userid=605653&hnog=20160915Xb8Mx.html
http://www.yqcq.gov.cn/e/space/?userid=605659&dfzx=20160915Hk8Qm.html
http://www.yqcq.gov.cn/e/space/?userid=605665&tgon=20160915Rv0Uq.html
http://www.yqcq.gov.cn/e/space/?userid=605669&ncdz=20160915Sa5Vc.html
http://www.yqcq.gov.cn/e/space/?userid=605672&sfzy=20160915Py0Ww.html
http://www.yqcq.gov.cn/e/space/?userid=605678&qnbt=20160915Ud1Dj.html
http://www.yqcq.gov.cn/e/space/?userid=605683&gpgw=20160915Bb5Kr.html
http://www.yqcq.gov.cn/e/space/?userid=605686&rnzr=20160915Mk9Ol.html
http://www.yqcq.gov.cn/e/space/?userid=605690&xzoo=20160915Fd3Qy.html
http://www.yqcq.gov.cn/e/space/?userid=605693&nnsx=20160915Yf3Vn.html
http://www.yqcq.gov.cn/e/space/?userid=605698&csiu=20160915Lo8Mg.html
http://www.yqcq.gov.cn/e/space/?userid=605703&yyzl=20160915Ef7Fk.html
http://www.yqcq.gov.cn/e/space/?userid=605706&epdn=20160915Gz7Xw.html
http://www.yqcq.gov.cn/e/space/?userid=605711&pakb=20160915St1Ne.html
http://www.yqcq.gov.cn/e/space/?userid=605713&rqqo=20160915Wu3Pd.html
http://www.yqcq.gov.cn/e/space/?userid=605718&ythe=20160915Xi8Ix.html
http://www.yqcq.gov.cn/e/space/?userid=605723&ylep=20160915Ve9Sp.html
http://www.yqcq.gov.cn/e/space/?userid=605726&mvko=20160915Yk8No.html
http://www.yqcq.gov.cn/e/space/?userid=605731&sqoc=20160915Rr8If.html
http://www.yqcq.gov.cn/e/space/?userid=605737&fyzs=20160915Hm7Bd.html
http://www.yqcq.gov.cn/e/space/?userid=605739&rhqm=20160915Bd1Ev.html
http://www.yqcq.gov.cn/e/space/?userid=605744&qedl=20160915Lu0Pc.html
http://www.yqcq.gov.cn/e/space/?userid=605749&cjry=20160915Oy1Pb.html
http://www.yqcq.gov.cn/e/space/?userid=605750&zwjz=20160915Vl3Dv.html
http://www.yqcq.gov.cn/e/space/?userid=605756&pikd=20160915Qh3Sr.html
http://www.yqcq.gov.cn/e/space/?userid=605759&mmzo=20160915Mi4Bp.html
http://www.yqcq.gov.cn/e/space/?userid=605763&mszl=20160915Np8Qf.html
http://www.yqcq.gov.cn/e/space/?userid=605769&mhjf=20160915Jb5Xk.html
http://www.yqcq.gov.cn/e/space/?userid=605770&ulyf=20160915Rh2Zo.html
http://www.yqcq.gov.cn/e/space/?userid=605776&momo=20160915Uj6Sm.html
http://www.yqcq.gov.cn/e/space/?userid=605781&zlpa=20160915Hs9Zl.html
http://www.yqcq.gov.cn/e/space/?userid=605783&guxj=20160915Cr9Rv.html
http://www.yqcq.gov.cn/e/space/?userid=605788&fjek=20160915Dw4In.html
http://www.yqcq.gov.cn/e/space/?userid=605791&yfdx=20160915Gt9Tj.html
http://www.yqcq.gov.cn/e/space/?userid=605796&iwwr=20160915Bl8Jg.html
http://www.yqcq.gov.cn/e/space/?userid=605801&rgzj=20160915Cz6Qd.html
http://www.yqcq.gov.cn/e/space/?userid=605804&pmjo=20160915Hi8Sr.html
http://www.yqcq.gov.cn/e/space/?userid=605810&jagc=20160915Zf1Rc.html
http://www.yqcq.gov.cn/e/space/?userid=605816&dfkw=20160915Nm7Ou.html
http://www.yqcq.gov.cn/e/space/?userid=605817&gihu=20160915Ib2On.html
http://www.yqcq.gov.cn/e/space/?userid=605822&dhty=20160915Hg0Zr.html
http://www.yqcq.gov.cn/e/space/?userid=605825&cprt=20160915Sw4So.html
http://www.yqcq.gov.cn/e/space/?userid=605829&bxty=20160915Kg3Xi.html
http://www.yqcq.gov.cn/e/space/?userid=605835&obym=20160915Mj4Du.html
http://www.yqcq.gov.cn/e/space/?userid=605837&qohr=20160915Od2Eo.html
http://www.yqcq.gov.cn/e/space/?userid=605843&zhdf=20160915Ul0Sy.html
http://www.yqcq.gov.cn/e/space/?userid=605849&kpqz=20160915Pp5Od.html
http://www.yqcq.gov.cn/e/space/?userid=605851&xkdp=20160915Sw6Wj.html
http://www.yqcq.gov.cn/e/space/?userid=605856&eled=20160915Am3Bn.html
http://www.yqcq.gov.cn/e/space/?userid=605859&ijuu=20160915Gu9Ux.html
http://www.yqcq.gov.cn/e/space/?userid=605863&kscw=20160915Kt1Sn.html
http://www.yqcq.gov.cn/e/space/?userid=605869&alpv=20160915Tp8Eo.html
http://www.yqcq.gov.cn/e/space/?userid=605870&rdhx=20160915Pm3Dn.html


作者:fwlhy1216 发表于2016/9/15 22:36:37 原文链接
阅读:67 评论:0 查看评论

自定义View——雷达图

$
0
0

雷达图(Radar Chart),又可称为戴布拉图、蜘蛛网图(Spider Chart),是财务分析报表的一种。即将一个公司的各项财务分析所得的数字或比率,就其比较重要的项目集中划在一个圆形的图表上,来表现一个公司各项财务比率的情况,使用者能一目了然的了解公司各项财务指标的变动情形及其好坏趋向。到了今天,在很多互联网的产品在做个体多方面数据的分析时也经常会用到雷达图。说了这么多,其实这玩意儿长成这个样的:

雷达图

用这种图显示数据的好处呢就是可以很直观地看出被分析的个体各个方面的情况,如果蓝色线围成的多边形的面积大,也可以从侧面反映该个体的整体水平。

除了财务报表上经常用到雷达图,在现在很多互联网产品也使用了雷达图,举个栗子——max+(我真的没有给max+打广告,如果各位认为我在打广告,max+你快给我广告费→_→),他里面有个地方用到了

max+

这个id不是我的!

这个id不是我的!

这个id不是我的!

好了,说了那么多,还是回到正题吧。

先分析一下这个雷达图的内容——主题是一个蜘蛛网,蜘蛛网的六个顶点旁边有文字说明和数值,最后还有一个是蜘蛛网上面的真实数据。

先看一下这几部分应该怎么做?

我们在实现自定义View的时候,如果Android框架中已经有功能相似的可以直接继承已存在的view,这样可以简化工作量,但是这个雷达图是六边形的,顶点旁边的文字虽然可以用TextView来组合,但是官方并没有给我们提供六边形的控件,所以我们需要重新画一个。

中间的蜘蛛网我们可以通过旋转画布6次,然后画一组线,而中间的那个数据填充区域可以使用路径(Path)来完成,顶点出的文字使用TextPaint来进行绘制。

创建一个RadarView继承于android.view.View,实现一个参数和两个参数的构造器,重写onDraw方法,下面是RadarView的全部代码:

public class RadarView extends View {

    private Paint mPaint = new Paint();
    private TextPaint tPaint = new TextPaint();

    private float[] mData = new float[]{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};

    //外边颜色
    private final int OUT_BORDER_COLOR = Color.parseColor("#919AA4");
    //内边颜色
    private final int IN_BORDER_COLOR = Color.parseColor("#E0E0E0");
    //数字文字颜色
    private final int TEXT_NUMBER_COLOR = Color.parseColor("#647D91");
    //汉字文字颜色
    private final int TEXT_COLOR = Color.parseColor("#3B454E");
    //填充颜色
    private final int FILL_COLOR = Color.parseColor("#CED6DC");

    //文字与图的间距
    private final int SPACE = 18;
    public RadarView(Context context) {
        this(context, null);
    }

    public RadarView(Context context, AttributeSet attrs) {
        super(context, attrs);

        init();
    }

    private void init() {
        mPaint.setStyle(Paint.Style.STROKE);

        tPaint.setTextSize(40f);
    }


    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        int maxRound = (int) (Math.min(getWidth(), getHeight()) / 2 * 0.75);

        //绘制蜘蛛网
        canvas.save();

        canvas.translate(getWidth() / 2, getHeight() / 2);

        for(int i = 0; i < 6; i++) {

            mPaint.setColor(IN_BORDER_COLOR);
            mPaint.setStrokeWidth(2f);
            canvas.drawLine(0, 0, maxRound, 0, mPaint);

            for(int j = 3; j >= 1; j--) {
                canvas.drawLine((float)(maxRound * j / 4.0), 0, (float)(maxRound / 2.0 * j / 4.0), (float)(maxRound * Math.sqrt(3) / 2 * j / 4.0), mPaint);
            }

            mPaint.setColor(OUT_BORDER_COLOR);
            mPaint.setStrokeWidth(4f);
            canvas.drawLine(maxRound, 0, maxRound/2, (float) (-Math.sqrt(3)/2*maxRound-0.5), mPaint);

            canvas.rotate(60);
        }

        canvas.restore();

        //绘制文字
        canvas.save();

        canvas.translate(getWidth() / 2, getHeight() / 2);

        tPaint.setColor(TEXT_COLOR);
        canvas.drawText("发育", maxRound + SPACE, 0, tPaint);
        tPaint.setColor(TEXT_NUMBER_COLOR);
        canvas.drawText(mData[0] + "", maxRound + SPACE, tPaint.getTextSize() + SPACE / 4, tPaint);

        tPaint.setColor(TEXT_COLOR);
        canvas.drawText("推进", maxRound / 2 + SPACE, (float) (maxRound * Math.sqrt(3) / 2), tPaint);
        tPaint.setColor(TEXT_NUMBER_COLOR);
        canvas.drawText(mData[1] + "", maxRound / 2 + SPACE, (float) (maxRound * Math.sqrt(3) / 2 + tPaint.getTextSize() + SPACE / 4), tPaint);

        tPaint.setColor(TEXT_COLOR);
        canvas.drawText("生存", -maxRound / 2 - SPACE - tPaint.getTextSize() * 2, (float) (maxRound * Math.sqrt(3) / 2), tPaint);
        tPaint.setColor(TEXT_NUMBER_COLOR);
        canvas.drawText(mData[2] + "", -maxRound / 2 - SPACE - tPaint.getTextSize() * 2, (float) (maxRound * Math.sqrt(3) / 2 + tPaint.getTextSize() + SPACE / 4), tPaint);

        tPaint.setColor(TEXT_COLOR);
        canvas.drawText("输出", -maxRound - SPACE - tPaint.getTextSize() * 2, 0, tPaint);
        tPaint.setColor(TEXT_NUMBER_COLOR);
        canvas.drawText(mData[3] + "", -maxRound - SPACE - tPaint.getTextSize() * 2,  tPaint.getTextSize() + SPACE / 4, tPaint);

        tPaint.setColor(TEXT_COLOR);
        canvas.drawText("综合", -maxRound / 2 - SPACE * 2 - tPaint.getTextSize() * 2, -(float) (maxRound * Math.sqrt(3) / 2), tPaint);
        tPaint.setColor(TEXT_NUMBER_COLOR);
        canvas.drawText(mData[4] + "", -maxRound / 2 - SPACE * 2 - tPaint.getTextSize() * 2, -(float) (maxRound * Math.sqrt(3) / 2 - tPaint.getTextSize() + SPACE / 4), tPaint);

        tPaint.setColor(TEXT_COLOR);
        canvas.drawText("KDA", maxRound / 2 + SPACE * 2, -(float) (maxRound * Math.sqrt(3) / 2), tPaint);
        tPaint.setColor(TEXT_NUMBER_COLOR);
        canvas.drawText(mData[5] + "", maxRound / 2 + SPACE * 2, -(float) (maxRound * Math.sqrt(3) / 2 - tPaint.getTextSize() + SPACE / 4), tPaint);
        canvas.restore();

        //绘制内容区域
        canvas.save();

        canvas.translate(getWidth() / 2, getHeight() / 2);

        Paint paint = new Paint();
        paint.setColor(FILL_COLOR);
        paint.setAlpha(0x88);
        paint.setStyle(Paint.Style.FILL);

        Path path = new Path();
        path.moveTo(mData[0] / 100 * maxRound, 0f);
        path.lineTo(mData[1] / 100 / 2 * maxRound, (float) (mData[1] / 100 * Math.sqrt(3) / 2 * maxRound));
        path.lineTo(-mData[2] / 100 / 2 * maxRound, (float) (mData[2] / 100 * Math.sqrt(3) / 2 * maxRound));
        path.lineTo(-mData[3] / 100 * maxRound, 0f);
        path.lineTo(-mData[4] / 100 / 2 * maxRound, (float) (-mData[4] / 100 * Math.sqrt(3) / 2 * maxRound));
        path.lineTo(mData[5] / 100 / 2 * maxRound, (float) (-mData[5] / 100 * Math.sqrt(3) / 2 * maxRound));

        path.close();

        canvas.drawPath(path, paint);

        canvas.restore();

    }

    //设置数据,需要在ui线程中调用
    public void setData(float[] data) {
        if(6 != data.length) {
            return;
        }
        this.mData = data;
        invalidate();
    }
}

说明一下,因为这个View我是要尽量仿照max+来做的,所以各个地方的颜色包括文字的小大等我都按照max+来做了,如果有需要让用户自己修改,把可变的属性提取到一个attrs.xml中,比如雷达图的边数(该例子是6),各个地方的颜色,大小等等,然后在构造方法中获取这些属性,并且动态去设置颜色,旋转角度等等。这里就不给出了。

另外还要给用户提供一些设置属性的方法,让用户可以在代码中设置属性的值,记得设置好后调用invalidate()方法重新绘制。

最后给出两张测试的图:

测试1

测试2

以上就是本次雷达图的实现。

其实在图二中的下面还有一张是折线统计图(我没截出来),下次(ruguo youkong)我会继续给大家带来折线图的绘制,原理和雷达图类似,不过(ruguo youkong)我会加一些可变的属性让控件更加自由定制。

祝各位中秋节快乐!

作者:spareyaya 发表于2016/9/15 22:42:43 原文链接
阅读:77 评论:0 查看评论

Android实战:手把手实现“捧腹网”APP(一)-----捧腹网网页分析、数据获取

$
0
0

捧腹网网页分析、数据获取


“捧腹网”页面结构分析

捧腹网M站地址: http://m.pengfu.com/

捧腹网M站部分截图:
这里写图片描述
这里写图片描述
从截图中(可以直接去网站看下),我们可以看出,该网站相对简单,一共分为四个模块:最新笑话、捧腹段子、趣图、神回复。 然后页面的显示形式有两种,一是单纯的文字(段子),二是单纯的图片(趣图)。其中趣图又分为静态图片和动态图片(gif图),且趣图的显示比段子多了“标签”。

“捧腹网”网页源码分析

在网页中点击右键,点击弹出菜单中的“查看网页代码”,就可以查看到当前网页的源代码。查看源代码,我们可以看出,每一个笑话,都是一个list-item。我截取部分代码,给大家略作分析。
这里写图片描述
这里写图片描述
这里写图片描述
我在上图中已经进行了标注,整个捧腹网的数据大体也就这三部分:段子、静态图、动态图。其中,每个list-item中的数据包括:用户头像、用户昵称、笑话的标题、笑话内容(段子内容、静态图、动态图),标签。

“捧腹网”数据列表请求URL分析

最新笑话列表:http://m.pengfu.com/index_num.html, 其中num为第几页。
捧腹段子列表:http://m.pengfu.com/xiaohua_num.html , 其中num为第几页。
趣图列表:http://m.pengfu.com/qutu_num.html , 其中num为第几页。
神回复列表:http://m.pengfu.com/shen_num.html , 其中num为第几页。

使用Jsoup解析网页

Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
关于如何使用Jsoup并不是本章重点,它并不难使用,具体可以参考jsoup开发指南http://www.open-open.com/jsoup/ ,相信你浏览一遍就知道它的使用方式了。

下面,我们通过Jsoup解析上图网页中的数据list-item 。
首先,我们需要首先获取网页源代码,jsoup提供了一个相当简单的方法,可以直接获取网页源代码,并把它转为Document对象。
Document doc = Jsoup.connect(“http://m.pengfu.com/index_1.html“).get();
当然,你也可以自己通过httpurlconnection获取到网页的数据流,然后通过 Document doc = Jsoup.parse(result);方法把它转为Document对象。

在实际开发中,我们需要用过异步任务,获取、解析网络数据,所以,在这里,我通过httpurlconnection来获取网页源码。

1.封装HTTP请求工具类

package com.lnyp.joke.http;

import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * Http请求的工具类
 *
 */
public class HttpUtils {

    private static final int TIMEOUT_IN_MILLIONS = 10000;

    public interface CallBack {
        void onRequestComplete(String result);
    }

    /**
     * 异步的Get请求
     *
     * @param urlStr
     * @param callBack
     */
    public static void doGetAsyn(final String urlStr, final CallBack callBack) {
        new Thread() {
            public void run() {
                try {
                    String result = doGet(urlStr);
                    if (callBack != null) {
                        callBack.onRequestComplete(result);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }

            }

            ;
        }.start();
    }
    /**
     * Get请求,获得返回数据
     *
     * @param urlStr
     * @return
     * @throws Exception
     */
    public static String doGet(String urlStr) {
        URL url = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        ByteArrayOutputStream baos = null;
        try {
            url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();

            conn.setReadTimeout(TIMEOUT_IN_MILLIONS);
            conn.setConnectTimeout(TIMEOUT_IN_MILLIONS);
            conn.setRequestMethod("GET");
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("User-Agent", "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52");
            if (conn.getResponseCode() == 200) {
                is = conn.getInputStream();
                baos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buf = new byte[128];

                while ((len = is.read(buf)) != -1) {
                    baos.write(buf, 0, len);
                }
                baos.flush();

//                System.out.print("str : " + baos.toString());

                return baos.toString();
            } else {
                throw new RuntimeException(" responseCode is not 200 ... ");
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (is != null)
                    is.close();
            } catch (IOException e) {
            }
            try {
                if (baos != null)
                    baos.close();
            } catch (IOException e) {
            }
            conn.disconnect();
        }

        return null;

    }

}

2.查询网页源码,转化为Document对象。

private void qryJokes() {

        final String url = "http://m.pengfu.com/index_1.html";
        System.out.println(url);

        HttpUtils.doGetAsyn(url, new HttpUtils.CallBack() {

            @Override
            public void onRequestComplete(String result) {

                if (result == null) {
                    return;
                }

                Document doc = Jsoup.parse(result);
            }
        });

    }

3.通过Jsoup解析网页源码,封装列表数据

import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.util.ArrayList;
import java.util.List;

/**
 * 笑话工具类
 */
public class JokeUtil {

    public List<JokeBean> getNewJokelist(Document doc) {

        //class等于list-item的div标签
        Elements list_item_elements = doc.select("div.list-item");

        List<JokeBean> jokeBeanList = new ArrayList<>();

        if (list_item_elements.size() > 0) {

            for (int i = 0; i < list_item_elements.size(); i++) {

                JokeBean jokeBean = new JokeBean();


                Element list_item_element = list_item_elements.get(i);

                Elements head_name_elements = list_item_element.select("div.head-name");

                if (head_name_elements.size() > 0) {
                    Element head_name_element = head_name_elements.first();
                    if (head_name_element != null) {
                        String userAvatar = head_name_element.select("img").first().attr("src");
                        String userName = head_name_element.select("a[href]").get(1).text(); //带有href属性的a元素
                        String lastTime = head_name_element.getElementsByClass("dp-i-b").first().text(); //带有href属性的a元素

                        String shareUrl = head_name_element.select("a[href]").get(1).attr("href");

                        jokeBean.setUserAvatar(userAvatar);
                        jokeBean.setUserName(userName);
                        jokeBean.setLastTime(lastTime);

                        jokeBean.setShareUrl(shareUrl);
                    }
                }

                Element con_img_elements = list_item_element.select("div").get(2);
                if (con_img_elements != null) {
                    if (con_img_elements.select("img") != null) {

                        Element img_element = con_img_elements.select("img").first();

                        JokeBean.DataBean dataBean = new JokeBean.DataBean();

                        if (img_element != null) {
                            String showImg = img_element.attr("src");
                            String gifsrcImg = img_element.attr("gifsrc");
                            String width = img_element.attr("width");
                            String height = img_element.attr("height");

                            dataBean.setShowImg(showImg);
                            dataBean.setGifsrcImg(gifsrcImg);
                            dataBean.setWidth(width);
                            dataBean.setHeight(height);

                        } else {
                            String content = con_img_elements.text().replaceAll(" ", "\n");
                            dataBean.setContent(content);
                        }

                        jokeBean.setDataBean(dataBean);

                    }
                }


                Element tagwrap_clearfix_elements = list_item_element.select("div").get(3);
                if (tagwrap_clearfix_elements != null) {

                    Elements clearfixs = tagwrap_clearfix_elements.select("a[href]"); //带有href属性的a元素

                    List<String> tags = new ArrayList<>();

                    for (int j = 0; j < clearfixs.size(); j++) {

                        String tag = clearfixs.get(j) != null ? clearfixs.get(j).text() : "";
                        tags.add(tag);
                    }
                    jokeBean.setTags(tags);
                }

                jokeBeanList.add(jokeBean);
            }
        }

        return jokeBeanList;

    }
}

本章小结:
本章主要介绍了如何通过解析网页源码获取网页中的数据,其实不难,静下心来,一点点分析,利用jsoup便可以轻而易举的拿到我们想要的数据。
获取到了数据之后,接下我们便可以设计、实现“捧腹”APP。
更多内容,下面会继续详解。

作者:zuiwuyuan 发表于2016/9/16 1:50:35 原文链接
阅读:76 评论:0 查看评论

GCD使用以及多线程开发

$
0
0

对于iOS多线程开发,我们时刻处于学习之中,在看书中,看文档中,项目开发中,都可以去提高自己。最近刚看完了《Objective-C高级编程 iOS与OS X多线程和内存管理》这本书后,对多线程有了更为深入的理解,故在此做一个总结与记录。这本书是iOS开发者必读的书之一,写得很不错。书的封面如下,故也称狮子书:


(1)多线程会遇到的问题


多线程会出现什么问题呢?当多个线程对同一个数据进行修改的时候,会造成数据不一致的情况;当多个线程互相等待会造成死锁;过多的线程并发会大量消耗内存。所以多线程出现bug会严重影响App的功能和性能。


(2)多线程的作用

我们为什么一定要用多线程呢?只要有一个主线程不就可以了么。



从图中可以看到,如果我们有一个很耗时的操作放到主线程中执行,那么会严重阻塞主线程的执行,导致主界面不能及时响应用户的操作,出现卡死状态。当创建多线程之后,我们可以把耗时操作放到其他线程中去执行,比如网络操作,图片的上传下载等,当执行成功后再回到主线程更新界面即可。所以,使用多线程是必要的。


(3)GCD中的队列——Dispatch Queue


Dispatch Queue就是GCD中的调度队列,我们只要把任务添加到队列中去,线程就会按照顺序取出然后去执行,按照先进先出FIFO的原则。



(4)Dispatch Queue的种类

GCD中存在两种Dispatch Queue,一种是等待现在执行中处理的Serial Dispatch Queue(串行队列);另一种是不等待现在执行中处理的Concurrent Dispatch Queue(并发队列).

Serial Dispatch Queue:等待现在执行中处理结束;

Concurrent Dispatch Queue:不等待现在执行中处理结束,使用多个线程同时执行多个处理。



Serial Dispatch Queue为什么一定要等待处理结束才去执行下一个处理呢?因为Serial Dispatch Queue只有一个线程,一个线程同一时间当然只能执行一个任务,所以后续任务必须要进行等待。

Concurrent Dispatch Queue由于可以创建多个线程,所以只要按顺序取出任务即可,把取出的任务放到不同的线程去执行,任务之间是否执行结束没有必然关系,所以不需要等待前一个处理结束,看起来就像是多个任务同时在执行一样,其实也的确是在同时执行。当然这个并发数量系统会有限制,我们代码也可以设置最大并发数。

看了以上的解释,就知道Serial Dispatch Queue、Concurrent Dispatch Queue和线程的关系了,关系如下:




(5)多个Serial Dispatch Queue实现并发,以及遇到的问题

      当生成多个Serial Dispatch Queue时,各个Serial Dispatch Queue将并行执行。虽然在一个Serial Dispatch Queue中同时只能执行一个追加处理,但是如果将处理分别追加到4个Serial Dispatch Queue中,各个Serial Dispatch Queue执行一个,即可以同时执行四个处理。


虽然这种笨办法也可以实现并发,但是也会遇到大问题,那就是消耗大量内存:




(6)资源竞争问题的解决

当多个线程对同一数据进行操作时可造成竞争或者数据不一致。最简单的解决办法就是使用Serial Dispatch Queue。Serial Dispatch Queue只创建一个线程,而一次只能执行一个任务,只有当该任务执行结束才能去执行下一个,所以同一时间对某个竞争资源的访问是唯一的。示意图如下:



(7)生成的Dispatch Queue必须由程序员释放。这是因为Dispatch Queue并没有像Block那样具有作为OC对象来处理的技术。通过dispatch_queue_create函数生成的Dispatch Queue在使用结束后通过dispatch_release释放。看个下面的例子:


这样立即释放queue是否有问题呢?

在dispatch_async函数中追加Block到Dispatch Queue后,即使立即释放Dispatch Queue,该Dispatch Queue由于被Block持有也不会被废弃,因而Block能够执行。Block执行结束后会释放Dispatch Queue,这时谁都不持有Dispatch Queue,因此它会被废弃。


(8)系统标准提供的Dispatch Queue

-- Main Dispatch Queue:在主线程中执行的queue,因为主线程只有一个,所以Main Dispatch Queue自然就是Serial Dispatch Queue。追加到Main Dispatch Queue的处理在主线程的RunLoop中执行。




-- Global Dispatch Queue:是所有应用程序都能够使用的Concurrent Dispatch Queue,没有必要通过dispatch_queue_create函数逐个生成Concurrent Dispatch Queue,只要获取Global Dispatch Queue即可。其中有四个优先级,但是用于Global Dispatch Queue的线程并不能保证实时性,因此执行优先级只是大致的判断。

对于Main Dispatch Queue和Global Dispatch Queue执行dispatch_retain函数和dispatch_release函数不会引起任何变化,也不会有任何问题。这也是获取并使用Global Dispatch Queue比生成、使用、释放Concurrent Dispatch Queue更轻松的原因。


(9)dispatch_set_target_queue:改变生成的Dispatch Queue的执行优先级

指定要变更执行优先级的Dispatch Queue为dispatch_set_target_queue函数的第一个参数,指定与要使用的执行优先级相同的Global Dispatch Queue为第二个参数(目标),第一个参数如果指定系统提供的Main Dispatch Queue和Global Dispatch Queue,则不会知道出现什么状态,因此这些均不可指定。


(10)dispatch_after:延迟执行

NSEC_PER_SEC:秒

NSEC_PER_MSEC:毫秒


(11)dispatch_barrier_async

会等待追加到Concurrent Dispatch Queue上的并行执行的处理全部结束之后,再将指定的处理追加到该Concurrent Dispatch Queue中。然后在由dispatch_barrier_async函数追加的处理执行完毕后,Concurrent Dispatch Queue才恢复为一般的动作,追加到该Concurrent Dispatch Queue的处理又开始并行执行。示意图如下:

..


(12)dispatch_async

将指定的block“非同步”的追加到指定的Dispatch Queue中,dispatch_async函数不做任何等待。




(13)dispatch_sync造成的问题

一旦调用dispatch_sync函数,那么在指定的处理执行结束之前,该函数不会返回。但是dispatch_sync容易造成死锁。


该源代码在Main Dispatch Queue即主线程中执行指定的Block,并等待其执行结束。而其实在主线程中正在执行这些源代码,所以无法执行追加到Main Dispatch Queue的Block。下面的例子也一样:


Main Dispatch Queue中执行的Block等待Main Dispatch Queue中要执行的Block执行结束。当然Serial Dispatch Queue也会引起相同的问题。



(14)dispatch_apply

dispatch_apply函数是dispatch_sync函数和Dispatch Group的关联API。该函数按指定的次数将指定的Block追加到指定的Dispatch Queue中,并等到全部处理结束。



因为在Global Dispatch Queue中执行处理,所以各个处理的执行时间不定,是不进行等待的追加任务。但是输出结果中最后的done必定在最后的位置上。这是因为dispatch_apply函数会等待全部处理执行结束。


由于dispatch_apply函数也与dispatch_sync函数相同,会等待处理执行结束,因此推荐在dispatch_async函数中非同步的执行dispatch_apply函数。




(15)dispatch_suspend/dispatch_resume

当追加大量处理到Dispatch Queue时,在追加处理的过程中,有时希望不执行已追加的处理。在这种情况下,只要挂起Dispatch Queue即可。当可以执行时再恢复。

-- dispatch_suspend函数挂起指定的Dispatch Queue:

dispatch_suspend(queue);


dispatch_resume函数恢复指定的Dispatch Queue:

dispatch_resume(queue);


这些函数对已经执行的处理没有影响。挂起后,追加到Dispatch Queue中但尚未执行的处理在此之后停止执行。而恢复则使得这些处理能够继续执行。


(16)Dispatch Semaphore

当不使用信号量的时候出现的bug.

.

这里使用Global Dispatch Queue更新NSMutableArray类对象,所以执行后由内存错误导致应用程序异常结束的概率很高。

Dispatch Semaphore是持有计数信号,该计数是多线程编程中的计数类型信号。计数为0时等待,计数为1或者大于1时,减去1而不等待。

创建semaphore:


参数表示计数的初始值。


dispatch_semaphore_wait函数等待Dispatch Semaphore的计数值达到或者等于1.当计数值大于等于1,或者在等待中计数值大于等于1时,对该计数进行减法并从dispatch_semaphore_wait函数返回。

semaphore可以进行以下分支处理:



dispatch_semaphore_wait函数返回0时,可安全的执行需要进行排他控制的处理。该处理结束时通过dispatch_semaphore_signal函数将Dispatch Semaphore的计数数值加1.

案例:





(17)dispatch_once

dispatch_once函数是保证在应用程序执行中只执行一次指定处理的API。下面这种经常出现的用来初始化的源代码可通过dispatch_once函数简化:


在多核CPU中,在正在更新表示是否初始化的标志变量时读取,就有可能多次执行初始化处理。而用dispatch_once函数初始化就不用担心了。这就是单例模式,在生成单例对象时使用。


(18)GCD的基本实现与描述

苹果官方说明:通常,应用程序中编写的线程管理用的代码要在系统级实现。

什么是系统级实现?就是在iOS和macOS的核心XNU内核级上实现。因此,无论程序员如何努力编写管理线程的代码,在性能方面也不可能胜过XNU内核级所实现的GCD。

用于实现Dispatch Queue而使用的软件组件:


Dispatch Queue没有“取消”这一概念。一旦将处理追加到Dispatch Queue中,就没有办法可以将该处理删除,也没有办法就执行中取消该处理。

作者:myuantao3286286 发表于2016/9/16 18:15:02 原文链接
阅读:111 评论:0 查看评论

关于webView的详细解析

$
0
0

基本用法

* 清单文件配置WebView
<WebView
    android:id="@+id/wv_news_detail"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
* WebView加载网页
//加载网页链接
mWebView.loadUrl("http://www.itheima.com");
//加载本地assets目录下的网页
mWebView.loadUrl("file:///android_asset/demo.html");
WebView基本设置
WebSettings settings = mWebView.getSettings();
settings.setBuiltInZoomControls(true);// 显示缩放按钮(wap网页不支持)
settings.setUseWideViewPort(true);// 支持双击缩放(wap网页不支持)
settings.setJavaScriptEnabled(true);// 支持js功能
设置WebViewClient
mWebView.setWebViewClient(new WebViewClient() {
    // 开始加载网页
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        System.out.println("开始加载网页了");
    }

    // 网页加载结束
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        System.out.println("网页加载结束");
    }

    // 所有链接跳转会走此方法
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        System.out.println("跳转链接:" + url);
        view.loadUrl(url);// 在跳转链接时强制在当前webview中加载

        //此方法还有其他应用场景, 比如写一个超链接<a href="tel:110">联系我们</a>, 当点击该超链接时,可以在此方法中获取链接地址tel:110, 解析该地址,获取电话号码, 然后跳转到本地打电话页面, 而不是加载网页, 从而实现了webView和本地代码的交互

        return true;
    }
});

设置WebChromeClient
mWebView.setWebChromeClient(new WebChromeClient() {
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        super.onProgressChanged(view, newProgress);
        // 进度发生变化
        System.out.println("进度:" + newProgress);
    }

    @Override
    public void onReceivedTitle(WebView view, String title) {
        super.onReceivedTitle(view, title);
        // 网页标题
        System.out.println("网页标题:" + title);
    }
});

WebView加载上一页和下一页
mWebView.goBack();//跳到上个页面
mWebView.goForward();//跳到下个页面
mWebView.canGoBack();//是否可以跳到上一页(如果返回false,说明已经是第一页)
mWebView.canGoForward();//是否可以跳到下一页(如果返回false,说明已经是最后一页)

WebView高级用法

缓存

缓存设置
WebSettings settings = mWebView.getSettings();

//只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//只加载缓存
settings.setCacheMode(WebSettings.LOAD_CACHE_ONLY);
//根据cache-control决定是否从网络上取数据
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
//不加载缓存
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);   

什么是cache-control?
cache-control是在请求网页时服务器的响应头,此响应头用于决定网页的缓存策略.
常见的取值有public(所有内容都将被缓存), private(内容只缓存到私有缓存中),no-cache(所有内容都不会被缓存),max-age=xxx(缓存的内容将在 xxx 秒后失效)等等

如图所示:


清理缓存
最简便的方式:
mWebView.clearCache(true);

另外一种方式:
//删除缓存文件夹
File file = CacheManager.getCacheFileBaseDir(); 

   if (file != null && file.exists() && file.isDirectory()) { 
    for (File item : file.listFiles()) { 
     item.delete(); 
    } 
    file.delete(); 
   } 

//删除缓存数据库
context.deleteDatabase("webview.db"); 
context.deleteDatabase("webviewCache.db");

Cookie 的设置(在一些保持登录状态的情况下用的较多)

在使用的情况下按照自己的情况而定,如果后台返回的是几组键值对的形式,应该将信息都返回过去。
Cookie设置
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);

String cookie = "name=xxx;age=18";
cookieManager.setCookie(URL, cookie);
CookieSyncManager.getInstance().sync();

获取Cookie
CookieManager cookieManager = CookieManager.getInstance();
String cookie = cookieManager.getCookie(URL);

清除Cookie
CookieSyncManager.createInstance(context);  
CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.removeAllCookie();
CookieSyncManager.getInstance().sync();  

Android和Js交互

如果Js和Android实现了交互, 那么我们就可以在网页中随意调用本地的Java代码, 也就是实现了WebView和本地代码的交互. 一旦WebView可以操作Android本地代码, 那么WebView的功能就会更加强大,以后我们直接在一个WebView中就几乎可以实现Android的所有功能,Android原生控件就没有了用武之地.

Js调用Android
WebSettings settings = mWebView.getSettings();
settings.setJavaScriptEnabled(true);//开启js

mWebView.loadUrl("file:///android_asset/demo.html");//加载本地网页
mWebView.setWebChromeClient(new WebChromeClient());//此行代码可以保证js的alert弹窗正常弹出

//核心方法, 用于处理js被执行后的回调
mWebView.addJavascriptInterface(new JsCallback() {

    @JavascriptInterface//注意:此处一定要加该注解,否则在4.1+系统上运行失败
    @Override
    public void onJsCallback() {
        System.out.println("js调用Android啦");
    }
}, "demo");//参1是回调接口的实现;参2是js回调对象的名称

//定义回调接口
public interface JsCallback {
    public void onJsCallback();
}

Android调用Js
//直接使用webview加载js就可以了
mWebView.loadUrl("javascript:wave()");
附上demo.html源码

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<script language="javascript">
    /* This function is invoked by the activity */
    function wave() {
        alert("Android调用Js啦");
    }
</script>
<body>
    <!-- Js调用Android代码 -->
    <a onClick="window.demo.onJsCallback()"><div style="width:80px;
        margin:0px auto;
        padding:10px;
        text-align:center;
        border:2px solid #202020;" >
            <img id="droid" src="android_normal.png"/><br>
            Click me!
    </div></a>
</body>

注意: js回调的方法的书写格式: onClick="window.demo.onJsCallback() 格式是: window.js回调对象的名称(要和java代码中设置的一致).回调方法名称(要和java代码中设置的一致)

注意事项
Js调用Android的方式具有版本兼容问题. 经测试, 在2.2, 4.0+ 系统上运行稳定, 可以正常调用, 但是在2.3系统上运行时出现崩溃.原因是底层进行JNI调用时,把一个Java中的String对象当数组来访问了,最终导致虚拟机崩溃. 基本算是一个比较严重的BUG,没办法解决,所以如果说用WebView组件想在js和java之间相互调用的话就没办法适应所有机型.

参考链接: https://code.google.com/p/android/issues/detail?id=12987

http://www.2cto.com/kf/201108/101375.html

目前一些比较前卫的app就只使用一个WebView作为整体框架,app中的所有内容全部使用html5进行展示.比如12306手机客户端. 这样做的好处就是可以实现跨平台, 只需要一份h5代码, 就可以在Android和Ios平台上同时运行, 而且更新也更加简便, 只需要更改服务器的h5页面, 本地客户端就马上会同步更新,无需下载apk覆盖安装. 不过劣势也很明显, h5受网速限制,往往加载速度比较慢, 没有原生控件流畅, 用户体验较差. 所以目前完全使用h5搭建app并没有成为主流方式.

WebView的应用场景

WebView的应用场景我们无需多讲, 此处我只提一点: 随着html5的普及, 很多app都会内嵌webview来加载html5页面, 而且h5做的和app原生控件极其相似, 那么我们如何辨认某个页面使用h5做的还是用原生控件做的呢?

打开开发者选项, 你会看到这样一个选项:显示布局边界


如果是webView 的话,打开手机上的各种软件会没有边界布局显示,比如现在比较火的滴滴就是用webView来实现的,而不是用系统的原声控件来实现的。



WebView介绍到此结束, 感谢捧场!!!







作者:qq_35534596 发表于2016/9/16 19:45:44 原文链接
阅读:74 评论:0 查看评论

【单目全景相机】友盟分享功能的集成

$
0
0

【单目全景相机】友盟分享功能的集成

作者:瓦哥
2016.09.16
由于本人认知有限,如有错漏,非常欢迎同行指正交流。
QQ:454186694

为什么要继承友盟分享?  

很多时候,我们的应用需要分享文字、图片或者视频等媒体信息到其他的平台,比如微信、QQ、新浪微博、国外的facebook、youtube、twitter、instagram等。如果一个一个的继承,需要在不同平台的开发者网站上找到相应的SDK接入,这样的话,工作量是巨大的,所以有些第三方的SDK就继承了各大平台的分享的SDK,然后提供统一的接口供开发人员使用,这样就大大减少了开发人员的工作量,是一件极其有意义的事情。这样的第三方社会化分享SDK有哪些呢?比较突出的就是友盟SDK和shareSDK了。XDV360单目全景相机应用,在这里选择使用的是友盟SDK。

友盟社会化分享

进入友盟社会化分享的网页,可以看到支持Android、IOS、Windows等平台,这里我们的应用分享功能是在Android版和IOS版上,所以进入下载到SDK,里面也会有详细的文档介绍如何继承和使用,这里我分Android和IOS两部分来介绍最基本的继承步骤。
image

分享效果

当我们点击预览图片的时候,顶部就有一个链接按钮,点击弹出分享对话框,可以选择不同平台,然后拉起相关应用分享媒体文件:
image

Android社会化分享继承

  1. 注册友盟AppKey:
    如果需要使用友盟的社会化分享功能呢,首先必须要注册友盟,获取到AppKey,后面需要集成到应用代码里面去。

  2. 下载并安装SDK:
    下载SDK最新版,下载的时候记得选上√SDK工程引用:以工程引用的方式导入eclipse,来添加资源文件和jar文件;
    解压之后,将social_sdk_library_project/libs拷贝到Assets/Plugins/Android/libs;将social_sdk_library_project/res拷贝到Assets/Plugins/Android/res;
    至此,安装完成。

  3. 配置AndroidManifest:
    每个Android应用程序都需要一个启动的Activity。也就是在手机里你点了一个游戏的icon这时候打开游戏,弹出的第一个Activity。
    a. 增加一个Activity并设置友盟AppKey:
    image
    b. 添加对微信、QQ、QQ空间的支持:
    image
    c. 添加对Facebook的支持:
    image
    还需要修改Assets\Plugins\Android\res\values\strings.xml的值为Facebook的AppID:
    image

  4. 在全局代码或入口处,初始化各平台的支持:
    image

  5. 代码里面添加真正调用分享的接口:
    这里用到了Unity3D中C#调用jar的技术,可以再Unity3D官方找到文档。具体就是AndroidJavaClassAndroidJavaObject两个类的使用。
    image
    至此,应用集成Android的友盟SDK,代码部分添加完成,剩下的就是UI部分和代码关联的工作了。

IOS社会化分享继承

Unity3D打包IOS平台,生成的其实是Xcode工程,如果想要实现一键打包出IOS的ipa包,可以参考雨松MOMO的教程Unity3D研究院之IOS全自动打包生成ipa。要实现一个功能,其实有很多办法,有的可以通过C#来做,有的可以通过Object-c来完成,我这里为了方便打包,都是选择的在C#上调用IOS静态库(友盟有提供,默认就在SDK里面)来实现的,所以你会发现和友盟官方提供的方法有区别,它是使用Object-c的方式,但大道同源、殊途同归。

  1. 注册友盟AppKey:
    IOS的AppKey和Android的AppKey是不一样的,需要分别申请。

  2. 下载并安装SDK:
    把UMSocial_Sdk_5.0.1拷贝到Unity3D工程Assets\Plugins\iOS\UMSocial_Sdk_5.0.1下,把UMSocial_Sdk_Extra_Frameworks拷贝到Unity3D工程Assets\Plugins\iOS\UMSocial_Sdk_Extra_Frameworks下,这样在生成IOS Xcode工程的时候,默认就会继承进去。

  3. 代码里面初始化友盟AppKey:
    Social.setAppKey("5764aba9e0f55a6878003xxx");
    Social是自己写的一个类,setAppKey是静态类,调用的是友盟IOS的.a静态库里面的方法:
    [DllImport("__Internal")]
    public static extern void setAppKey(string appKey);

  4. 在OnPostprocessBuild中实现打包后的处理:
    Unity3D生成了Xcode工程之后,我们可以在OnPostprocessBuild中写代码实现其他功能,比如我们这里修改工程文件project.pbxproj,修改包名、增加Framework、增加一些库;修改info.plist,增加各平台的Url Scheme,才能实现跨应用分享,添加应用白名单;打开其他工程源码文件,修改到具体行等。这里我只针对分享功能,介绍需要修改的地方。
    这里我使用到了Unity Cloud Build demo里面提供的一个开源类XcodeProjectUpdater.cs ,以及使用到了雨松MOMO在教程Unity3D研究院之IOS全自动编辑framework、plist、oc代码用到的类和方法。下面的图我只截了一部分,完整的类和方法,全部都可以在我上面提到的两个地方获取到。
    a. 添加对各平台分享功能的URL Scheme支持:
    image
    b. 添加URL Scheme白名单:
    image
    c. 添加对Instagram的支持:
    image
    至此,应用集成IOS的友盟SDK,代码部分添加完成,UI部分关联做的好,可以和Android部分使用同一个方法,C#里面使用UNITY_IOS和UNITY_ANDROID来区分。

作者:woaini454186694 发表于2016/9/16 19:51:45 原文链接
阅读:103 评论:0 查看评论

iOS基于XMPP实现即时通讯之一、环境的搭建

$
0
0

移动端访问不佳,请访问我的个人博客

使用XMPP已经有一段时间了,但是一直都没深入研究过,只是使用SDK做一些简单的操作,看了许多大神的博客,自己总结一下,准备写一系列关于XMPP的使用博客,以便于自己更加深入学习~

IM协议及服务器选型

http://liudanking.me/arch/xmpp%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%89%E5%9E%8B/
协议选型:XMPP已经成为标准的IM协议。XMPP官网:http://XMPP.org/
服务器型:使用广泛的是ejabberd,jabberd 2.x, Openfire,Tigase。从编程语言角度来看主要是JAVA和Erlang。JAVA语言的优势是类库完备,容易招人。Erlang的优势是hot code swap,live console, 高并发。而且ejabberd是对XMPP协议支持最好、实现最为全面的server。因此企业在不考虑独立开发服务器的情况下,初期选型基本建议采用ejabberd。

本文我们主要实践iOS端流程,不考虑太多服务器实现,因为Openfire易安装,插件功能丰富,我们使用Openfire

MAC上搭建MySQL

因为服务器需要数据库支撑,所以我们在搭建Openfire前要先搭建数据库。

下载MySQL安装包

我们先去MySQL官网去下载MySQL的安装包,如下图所示:

这里写图片描述

这里写图片描述

安装MySQL

下载完后,开始安装MySQL如下图:

这里写图片描述

注意事项:因为安装完MySQL后它会自动给你生成一个密码,所以你要保存好这个密码,后面修改密码的时候会用到,如下图所示:

这里写图片描述

配置MySQL

启动MySQL

首先在设置里面找到MySQL的启动按钮,启动MySQL服务,如下图:

这里写图片描述

这里写图片描述

定义MySQL别名

然后需要将MySQL的指令重新定义一下,因为MySQL的指令集在/usr/local/mysql/bin/mysql路径下,需要执行一下命令行:

# 定义mysql别名
alias mysql=/usr/local/mysql/bin/mysql
# mysqladmin
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

修改MySQL账户密码

之前安装完成后系统给我们了一个默认的密码,因为那个密码很繁琐不容易记住,所以我们需要重新设置一个密码,我们先输入如下指令设置新密码,”newpassword”为你要设置的新密码:

mysqladmin -u root -p password "newpassword"
#然后 Enter password: 【输入原来的密码】

如下图所示表示密码修改成功:

这里写图片描述

完成后以后root账户需要密码就用你新设置的密码就行了~

连接数据库,创建Openfire数据库

# 连接数据库
mysql -u root -p
# 创建Openfire数据库
create database openfire;

完全卸载MySQL

在系统内存不够时有时候我们会需要删除掉MySQL,一下就是删除MySQL的方法:

Yosemite 系统开始,/etc/hostconfig 这个文件已经移除,所以 Yosemite 后的系统可以忽略下面的命令

sudo nano /etc/hostconfig

然后以下是终端执行代码:

sudo rm -rf /usr/local/mysql  
sudo rm -rf /usr/local/mysql*  
sudo rm -rf /Library/StartupItems/MySQLCOM  
sudo rm -rf /Library/PreferencePanes/My*  
sudo nano /etc/hostconfig     (复制前面部分回车,然后删掉这一行: MYSQLCOM=-YES-,control+O回车保存,control+X退出编辑界面)  
sudo rm -rf ~/Library/PreferencePanes/My*  
sudo rm -rf /Library/Receipts/mysql*  
sudo rm -rf /Library/Receipts/MySQL*  
sudo rm -rf /var/db/receipts/com.mysql.*  

MAC上搭建Openfire

下载并安装openfire

openfire官网上去下载相应的包:

这里写图片描述

双击进行傻瓜式的安装就好了,安装完毕后会在系统偏好设置里面找到openfire的启动器

点击Openfire会进入启动页面

点击Open Admin Console进入浏览器设置页面,语言选择简体中文

接着设置服务器的名字

链接数据库

注意里面的用户名和密码是你数据库的用户名和密码,用户名一般是root,密码是你之前重新设置的密码~~~

然后一直继续就OK了,最后需要我们登录到openfire

密码就是之前设置的密码

openfire启动失败解决办法

当你发现你的电脑上的openfire无论你是重新安装还是重启都无法启动的情况下你可以按照我下面写的那些终端指令来启动你的openfire不用再去重新做你的系统了.

一般你发现你的openfire打开出现这样的窗口后你就可以想到你的openfire出问题了,极个别的时候你可以通过重新安装来解决.

如果大家的问题重新安装后没有解决那就试下我下面的方法.

先打开自己电脑上的终端然后输入以下指令:

// 获取权限
sudo chmod -R 777 /usr/local/openfire/bin
cd /usr/local/openfire/bin
export JAVA_HOME=`/usr/libexec/java_home` # 记住这里不是单引号而是英文下数字1左边的按键.
echo $JAVA_HOME
# 终端上打印的内容 /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
cd /usr/local/openfire/bin
./openfire.sh
# 终端上打印的内容
# Openfire 4.0.3 [Sep 16, 2016 4:19:21 PM]
# Admin console listening at http://wangchongleidemacbook-air.local:9090

一般你输入完成这些指令后你再打开你的openfire就会发现这样的情况.

安装openfire后admin无法登录管理控制平台

解决方案如下:

  • 使用Mysql查看工具进入数据库,进入表“ofuser”,将该表清空,然后执行SQL 语句
INSERT INTO ofUser (username, plainPassword, name, email, creationDate, modificationDate) VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');
  • 关闭openfire服务,就是从其控制台stop然后再start,再用用户名:admin,密码:admin登录即可.

彻底删除openfire服务器的

首先,确保你已经关掉了openfire
打开终端 (在应用程序–>实用工具–>)
输入以下命令

sudo rm -rf /Library/PreferencePanes/Openfire.prefPane
sudo rm -rf /usr/local/openfire
sudo rm -rf /Library/LaunchDaemons/org.jivesoftware.openfire.plist

第一条会让你输入管理员密码,尽管你输入的时候,终端不会显示,不必担心,正确输入后按回车,它就执行了。
三条命令以后,openfire就彻底消失了.但是需要重启一下系统偏设置。

总结

配置过程还是比较繁琐的,一共需要好几个步骤,需要装的有MySQLJAVA环境openfire,里面有一步没做好都没法使用,自己完整配置下来也花了很长时间,大家如果有什么问题可以留言问我,谢谢大家的阅读~~

参考文档:

http://www.cnblogs.com/xiaodao/archive/2013/04/04/2999426.html

http://www.cnblogs.com/xiaodao/archive/2013/04/05/3000554.html

http://www.jianshu.com/p/5d88fe201c71

作者:wang631106979 发表于2016/9/16 19:57:17 原文链接
阅读:230 评论:0 查看评论
Viewing all 5930 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>