@XStreamAlias("result")
public class Myresult {

@XStreamImplicit(itemFieldName="item")

package com.example.yuekao1;

import java.util.ArrayList;
import java.util.List;
import com.baidu.net.Network;
import com.baidu.vo1.Good;
import com.baidu.vo1.Mydata;
import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener2;
import com.handmark.pulltorefresh.library.PullToRefreshGridView;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.text.format.DateUtils;
import android.view.KeyEvent;
import android.widget.GridView;
import android.widget.Toast;

public class Show extends Activity implements OnRefreshListener2<GridView> {

private String name;
    private PullToRefreshGridView gv;
    private List<Mydata> data;
    private Base1 b1;
    List<Mydata> list = new ArrayList<Mydata>();
    private Exit exit;

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

setContentView(R.layout.activity_show);
        gv = (PullToRefreshGridView) findViewById(R.id.gv);
        new Asy().execute();
        gv.setOnRefreshListener(this);
        exit = new Exit();
        Intent in = getIntent();
        name = in.getStringExtra("id");
    }

class Asy extends AsyncTask<String, Integer, String> {

protected String doInBackground(String... params) {
            String s1 = Network
                    .getjson("http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&dtype=gson&rn=10&pn=10&catalog_id="
                            + name);
            return s1;
        }

protected void onPostExecute(String result) {

Gson g = new Gson();
            Good json = g.fromJson(result, Good.class);
        if (fromJson.getResult() != null
                    && fromJson.getResult().getData() != null) {

List<Mydata> data = fromJson.getResult().getData();
                list = data;
                b2 = new Base2(list, Show.this);
                gv.onRefreshComplete();
                gv.setAdapter(b2);
                initIndicator();
            }

}
    }

class Asynt extends AsyncTask<String, Integer, String> {

protected String doInBackground(String... params) {
            String s1 = Network
                    .getjson("http://apis.juhe.cn/goodbook/query?key=9d6ef8c31647a206e05fcaff70527182&dtype=gson&rn=10&pn=10&catalog_id="
                            + name);
            return s1;
        }

protected void onPostExecute(String result) {

Gson g = new Gson();
            Good json = g.fromJson(result, Good.class);
            List<Mydata> data2 = json.getResult().getData();
            list.addAll(data2);
            b1.notifyDataSetChanged();
            gv.onRefreshComplete();
            initIndicator();

}
    }

public void onPullDownToRefresh(PullToRefreshBase<GridView> refreshView) {
        new Asy().execute();
    }

public void onPullUpToRefresh(PullToRefreshBase<GridView> refreshView) {
        new Asynt().execute();
    }

private void initIndicator() {
        String label = DateUtils.formatDateTime(getApplicationContext(),
                System.currentTimeMillis(), DateUtils.FORMAT_SHOW_TIME
                        | DateUtils.FORMAT_SHOW_DATE
                        | DateUtils.FORMAT_ABBREV_ALL);
        gv.getLoadingLayoutProxy().setLastUpdatedLabel(label);
    }

public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            pressAgainExit();
            return true;
        }

return super.onKeyDown(keyCode, event);
    }

private void pressAgainExit() {
        if (exit.isExit()) {
            finish();
        } else {
            Toast.makeText(getApplicationContext(), "再按一次退出程序",
                    Toast.LENGTH_SHORT).show();
            exit.doExitInOneSecond();
        }
    }
}

package com.example.yuekao1;

import android.os.Handler;
import android.os.HandlerThread;

public class Exit {
    private boolean isExit = false;
    private Runnable task = new Runnable() {
        @Override
        public void run() {
            isExit = false;
        }
    };

public void doExitInOneSecond() {
        isExit = true;
        HandlerThread thread = new HandlerThread("doTask");
        thread.start();
        new Handler(thread.getLooper()).postDelayed(task, 1000);
    }

public boolean isExit() {
        return isExit;
    }

public void setExit(boolean isExit) {
        this.isExit = isExit;
    }
}

<com.handmark.pulltorefresh.library.PullToRefreshGridView
        xmlns:ptr="http://schemas.android.com/apk/res-auto"
        android:id="@+id/gv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000"
        android:divider="#19000000"
        android:dividerHeight="4dp"
        android:fadingEdge="none"
        android:fastScrollEnabled="false"
        android:footerDividersEnabled="false"
        android:headerDividersEnabled="false"
        android:numColumns="3"
        android:smoothScrollbar="true"
        ptr:ptrMode="both" >
    </com.handmark.pulltorefresh.library.PullToRefreshGridView>

in.putExtra("id", item.get(arg2).getId());

PullToRefreshGridView刷新加载2的更多相关文章

  1. PullToRefreshGridView刷新加载

    <com.handmark.pulltorefresh.library.PullToRefreshGridView        xmlns:ptr="http://schemas.a ...

  2. 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据

    感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo! 这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧! 直接上代码分析下吧! 布局: & ...

  3. ListView 刷新加载控件

    1.MaterialRefreshLayout刷新加载: 导入依赖: compile 'com.cjj.materialrefeshlayout:library:1.3.0' 布局 <com.c ...

  4. jQuery Pjax – 页面无刷新加载,优化用户体验

    pjax 是 HTML5 pushState 以及 Ajax 两项技术的简称,综合这两个技术可以实现在不刷新页面的情况下载入 HTML 到当前网页,带给你超快速的浏览器体验,而且有固定链接.标题以及后 ...

  5. Android UI--自定义ListView(实现下拉刷新+加载更多)

    Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...

  6. 移动端tab滑动和上下拉刷新加载

    移动端tab滑动和上下拉刷新加载 查看demo(请在移动端模式下查看) 查看代码 开发该插件的初衷是,在做一个项目时发现现在实现移动端tab滑动的插件大多基于swiper,swiper的功能太强大而我 ...

  7. android 在自定义的listview(有刷新加载项)列表中,数据过少时不能铺满整个屏幕时,header和footer同时显示问题

    android  在自定义的listview(有刷新加载项)列表中,数据过少时,当刷新时,加载项也会显示,这是很头疼的一个问题,查阅了一些资料,总结了一个比较不错的方法: 原来代码: @Overrid ...

  8. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

  9. emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题

    想要更详细了解pjax,需要查看官网 或者看本站文章:jQuery.pjax.js:使用AJAX和pushState无刷新加载网页(官网教程中文翻译) 效果看本站,音乐无刷新播放,代码高亮和复制js加 ...

随机推荐

  1. 用JS获取地址栏参数的方法(超级简单)

    方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) {      var reg = new RegExp("( ...

  2. 使用Python scipy linprog 线性规划求最大值或最小值(使用Python学习数学建模笔记)

    函数格式 scipy.optimize.linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None, method='simp ...

  3. linux下错误的捕获:errno和strerror的使用

    经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因.这个时候使用 ...

  4. 人工智能交互集成在线语音合成能力的Tips

    在线语音合成就是在联网的场景下将文字转换成声音,实现机器向人的声音交互.这个概念应该是比较好理解的,下面就结合官网的Android在线合成的Demo讲解一下合成的流程以及大家经常遇到的一些问题. 到官 ...

  5. HTML <label> 标签

    定义:<label> 标签为 input 元素定义标注(标记). 用法: label 元素不会向用户呈现任何特殊效果.不过,它为鼠标用户改进了可用性.如果您在 label 元素内点击文本, ...

  6. z变换

    ---恢复内容开始--- z变换作用很大 将离散信号从时间域转到频率域 网址 ---恢复内容结束--- z变换作用很大 将离散信号从时间域转到频率域 网址 http://stackoverflow.c ...

  7. centos 6 SSH配置Google Authentication 验证

    创建工作目录: mkdir google-authentication 1. 安装二维码生成依赖 #wget http://fukuchi.org/works/qrencode/qrencode-3. ...

  8. linux msql

    安装mysql 1.使用rpm 安装mysql 或者使用yum安装 使用rpm 安装 下载 Centos 7 所需要的mysql包 tar -xf 解压整合包 根据依赖 安装 common>li ...

  9. jquery实现css3动画

    jquery animate改变元素样式时,只支持数字值的变化,比如width,height等,但是css3属性状态值很多都不是数字值,而是字符串和数字混合在一起,比如translate(), rot ...

  10. Schedule 学习

    现在做的项目都有用到Schedule,现在用一点时间来总结. 一.首先要到Nuget中下载Quartz.net. 二.下载下来了,你需要对它进行配置,使它能给你正常的使用. 三.在Global.asa ...