package com.sunway.works.applycash;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.sunway.works.R;

import com.sunway.works.applycash.ApplyCashListActivity;

import com.sunway.works.cost.apply.EditExpenseActivity;

import com.sunway.works.cost.apply.ExpenseAuditActivity;

import com.sunway.works.entitys.ApplyCashEntity;

import com.sunway.works.entitys.IousEntity;

import com.sunway.works.network.HttpService;

import com.sunway.works.network.HttpServiceImpl;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.app.DatePickerDialog;

import android.app.Dialog;

import android.app.Service;

import android.app.ActionBar.LayoutParams;

import android.content.Context;

import android.content.Intent;

import android.util.Log;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.view.Window;

import android.view.View.OnClickListener;

import android.view.inputmethod.InputMethodManager;

import android.view.WindowManager;

import android.widget.AbsListView;

import android.widget.AbsListView.OnScrollListener;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.AdapterView;

import android.widget.BaseAdapter;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.EditText;

import android.widget.LinearLayout;

import android.widget.ListView;

import android.widget.PopupWindow;

import android.widget.ProgressBar;

import android.widget.SimpleAdapter;

import android.widget.Spinner;

import android.widget.TextView;

import android.widget.Toast;

public class EditOneCashActivity extends Activity implements

OnScrollListener {

private ListView listView;

private Context context;

private View top_title;

private TextView tvtitle;

private PopupWindow popupWindow;

private View view;

private View bar1;

private View bar2;

private Spinner sp_depart;

private EditText ed_iounnub;

private EditText ed_purpose;

private EditText ed_date_from;

private EditText ed_date_over;

private Button btn_date_from;

private Button btn_date_over;

private EditText ed_iousum;

private Spinner sp_checkstate;

private EditText ed_borrower;

private Button btn_query;

private Handler handler;

private static final int DATE_DIALOG_ID = 1;

private static final int SHOW_DATAPICK = 0;

private int mYear;

private int mMonth;

private int mDay;

private DeleteCashListAdapter adapter;

private List<ApplyCashEntity> listdata = new ArrayList<ApplyCashEntity>();

private InputMethodManager imm;

private Button btn_left;

private Button btn_right;

private List<ApplyCashEntity> loadDatas; // 载入数据

// private ChooseCheckmanAdapter adapters; //适配器

private LinearLayout loadingLayout;// 底部载入布局

private Map<Integer, Boolean> isCheckedMap = new HashMap<Integer, Boolean>();;

private boolean over;// 推断数据是否已所有载入

private Thread mThread;// 载入线程

private int unb = 1;

// 设置布局显示属性

private android.widget.LinearLayout.LayoutParams mLayoutParams = new LinearLayout.LayoutParams(

LinearLayout.LayoutParams.WRAP_CONTENT,

LinearLayout.LayoutParams.WRAP_CONTENT);

// 设置布局显示目标最大化属性

private android.widget.LinearLayout.LayoutParams FFlayoutParams = new LinearLayout.LayoutParams(

LinearLayout.LayoutParams.FILL_PARENT,

LinearLayout.LayoutParams.FILL_PARENT);

private ProgressBar progressBar;

private PopupWindow window;

private Intent intent;

private ListView list2;

Handler mhandler = new Handler() {

public void handleMessage(android.os.Message msg) {

switch (msg.what) {

case 1:// 推断是否数据已所有载入

if (!over) {

adapter.notifyDataSetChanged();

} else {

listView.removeFooterView(loadingLayout);

Toast.makeText(context, "数据载入完成", Toast.LENGTH_SHORT)

.show();

}

break;

case 2:

adapter.notifyDataSetChanged();

break;

}

};

};





@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.activity_data_list);

context = getApplicationContext();

handler = new Handler();





// 初始化底部载入视图

LinearLayout layout = new LinearLayout(context);

layout.setOrientation(LinearLayout.HORIZONTAL);

progressBar = new ProgressBar(context);

progressBar.setPadding(0, 0, 15, 0);

layout.addView(progressBar, mLayoutParams);

TextView textView = new TextView(context);

textView.setText("载入中...");

textView.setGravity(Gravity.CENTER_VERTICAL);

layout.addView(textView, FFlayoutParams);

loadingLayout = new LinearLayout(context);

loadingLayout.addView(layout, mLayoutParams);

loadingLayout.setGravity(Gravity.CENTER);

// 初始化ListView并设定事件

initView();

       getListener();

}

private void getListener() {

btn_left.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

finish();

}

});

}



private void initView() {

// TODO Auto-generated method stub

top_title = this.findViewById(R.id.top_title);

tvtitle = (TextView) top_title.findViewById(R.id.tvtitle);

btn_left = (Button) top_title.findViewById(R.id.btn_title_left);

btn_right = (Button) top_title.findViewById(R.id.btn_title_right);

listView = (ListView) findViewById(R.id.data_enterlist);

listView.addFooterView(loadingLayout);

//   listView.addFooterView()方法一定要在其setadapter()方法之前使用。不然报错

adapter = new DeleteCashListAdapter(EditOneCashActivity.this,

listdata, true);

listView.setAdapter(adapter);

listView.setOnScrollListener(EditOneCashActivity.this);

over = false;

}

@Override

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount) {

if (firstVisibleItem + visibleItemCount == totalItemCount) {

if (mThread == null || !mThread.isAlive()) {

mThread = new Thread() {

public void run() {

//从网上读取要获得的数据   这是我自己的读取server的数据,个人因须要自己写自己的联网读取数据

HttpService service = new HttpServiceImpl();

String i = (10 * (unb - 1) + 1) + "";   //   i 是下标,决定从哪一条数据開始读,10代表每一次读取数据的条数

loadDatas = service.getApplyCashList(param1, i);

// 假设载入数据不为空,则将载入得到的数据加入到已有的mData数据中.否则数据载入全然

if (loadDatas != null && loadDatas.size() > 0) {

listdata.addAll(loadDatas);

loadDatas.clear();

} else {

unb = unb - 1;

over = true;

}

unb++;

mhandler.sendEmptyMessage(1);//更新UI

};

};

mThread.start();

}

}



}



@Override

public void onScrollStateChanged(AbsListView view, int scrollState) {

// TODO Auto-generated method stub



}



}

android listView 滑动载入数据 该数据是服务端获取的的更多相关文章

  1. Android ListView分页载入(服务端+android端)Demo

    Android ListView分页载入功能 在实际开发中经经常使用到,是每一个开发人员必须掌握的内容,本Demo给出了服务端+Android端的两者的代码,并成功通过了測试. 服务端使用MyEcli ...

  2. Android ListView滑动过程中图片显示重复错乱闪烁问题解决

    最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...

  3. Android从服务端获取json解析显示在客户端上面

    Android从服务端获取json解析显示在客户端上面 百度经验:jingyan.baidu.com 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Jso ...

  4. post数据过大到服务端,接收不到的问题

    在页面把datagrid上的数据post到服务端,解析提供导出.datagrid的数据大概有1w. 结果能post过去,但在服务端接收的数据显示null.但是如果post6000条左右就没问题. 经过 ...

  5. Java通过URL 从web服务端获取数据

    1.Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据 package Demo.Test; import java.io.ByteArrayOut ...

  6. 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据

    这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...

  7. Android实时获得经纬度,发送给c++服务端

    Android 客户端: package com.example.admin.gpsget; import android.Manifest; import android.content.Conte ...

  8. 采用MQTT协议实现android消息推送(2)MQTT服务端与客户端软件对比、android客户端示列表

    1.服务端软件对比 https://github.com/mqtt/mqtt.github.io/wiki/servers 名称(点名进官网) 特性 简介 收费 支持的客户端语言 IBM MQ 完整的 ...

  9. Android ListView分页,动态添加数据

    1.ListView分页的实现,重点在于实现OnScrollListener接口,判断滑动到最后一项时,是否还有数据可以加载, 我们可以利用listView.addFootView(View v)方法 ...

随机推荐

  1. Java GUI编程4---标签组件JLabel

    Java GUI编程4---标签组件JLabel 2018年06月11日 22:06:58 蓝蓝223 阅读数 12103更多 个人分类: Java书籍摘抄 所属专栏: Java Swing图形界面 ...

  2. 【Luogu】P4067储能表(数位DP)

    题目链接 好的 看到这题之后我一直在想反演,然后想不出来,一度以为自己脑子有问题 然后我脑子真的有问题,这题tm根本就不是反演 设f[i][j][k][l]表示现在已经DP到从高位往低数的第i位,有没 ...

  3. cf 843 D Dynamic Shortest Path [最短路+bfs]

    题面: 传送门 思路: 真·动态最短路 但是因为每次只加1 所以可以每一次修改操作的时候使用距离分层的bfs,在O(n)的时间内解决修改 这里要用到一个小技巧: 把每条边(u,v)的边权表示为dis[ ...

  4. 2017-3-01 test

    三道好像都是HDU上的题QAQ 题目名称都没改,差评 T1:http://acm.hdu.edu.cn/showproblem.php?pid=5073 被卡精度了QAQ 先排一发序,然后发现最后未动 ...

  5. java连接adsl

    http://blog.csdn.net/qq_28784775/article/details/54134169#comments

  6. vue-element-admin开发模式下style标签热更新失效[解决办法]

    参考:https://forum.vuejs.org/t/vue-cli-3-x-style/46306/3 vue.config.js添加配置 css: { sourceMap: false, mo ...

  7. MobaXterm使用

    MobaXterm: SSH/X远程客户端, Xmanager的最佳免费替代品   当需要连接远程linux并运行X程序时,很多朋友首先想到的是NetSarang Xmanager, 虽然这个工具的确 ...

  8. Lawnmower(洛谷 CF115B)

    题目看这里 题目大意 简单来讲就是从(1,1)向左或右或下走,经过所有草坪的最短路程 思路: 由于在第一行只能向右走,那么我们就知道,在单数行和双数行分别是向右走和向左走,那么我们在单数行就只需要统计 ...

  9. win8.1 uefi引导

    装上win8后,感觉似乎开机比win7要慢一些,但实际掐表又发现几乎无差别,但是看网上别人都说 win8可以10秒以内开机,然后又说他们是采用uefi引导,而不是bios引导,那我也试试吧,如下: 1 ...

  10. 02深入理解C指针之---指针类型和值

    该系列文章源于<深入理解C指针>的阅读与理解,由于本人的见识和知识的欠缺可能有误,还望大家批评指教. 1.指针的类型: 可以在声明指针时,指定指针的类型,例如: (1)void *x  声 ...