`
guzizai2007
  • 浏览: 355336 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Layout1.8

 
阅读更多

ListView刷新分页:

package com.example.android_listview_activity;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

/**
 * @desc	分页
 * @author	ljt
 * @time	2014年8月27日 上午11:15:27
 */
public class MainActivity6 extends Activity implements OnScrollListener{
	
	private ListView listView;
	
	private ViewHolder holder;
	
	private int visibleCount;
	
	private MyAdapter adapter;
	
	private ArrayList<Blog> blogList= new ArrayList<Blog>();
	
	/**
	 * 初始化数据
	 */
	private void initData(){
		for(int i = 1;i<=10;i++){
			Blog blog = new Blog();
			blog.setContent("内容:"+i);
			blog.setTitle("标题"+i);
			blogList.add(blog);
		}
	}
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		listView = (ListView)this.findViewById(R.id.listView1);
		
		View foot = getLayoutInflater().inflate(R.layout.foot,null);
		// 添加尾部view
		listView.addFooterView(foot);
		listView.setOnScrollListener(this);
		
		initData();
		
		adapter = new MyAdapter();
		listView.setAdapter(adapter);
		
	}
	
	/**
	 * 滚动
	 */
	@Override
	public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
		System.out.println("firstVisibleItem=="+firstVisibleItem);
		System.out.println("visibleItemCount=="+visibleItemCount);
		System.out.println("totalItemCount=="+totalItemCount);
		
		visibleCount = firstVisibleItem + visibleItemCount -1 ;
		System.out.println("visibleItemCount  is =="+visibleCount);
	}
	
	/**
	 * 线程之间通讯处理器
	 */
	
	private Handler handler = new Handler(){
		
		public void handleMessage(Message msg) {
			System.out.println("msg.what==:"+msg.what);
			switch (msg.what) {
				case 1:
					// 数据加载完成  重新刷新listView
					adapter.notifyDataSetChanged();
					break;
				default:
					break;
			}
		};
		
	};
	
	/**
	 * 滚动状态变更
	 */
	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
		System.out.println("visibleItemCount == "+visibleCount);
		// 停止状态 并且是最后一个值
		if(visibleCount == adapter.getCount() && scrollState == OnScrollListener.SCROLL_STATE_IDLE){
			System.out.println("启动线程 == ");
			// 加载新数据
			Thread t = new Thread(new loadData());
			t.start();
		}
	}
	
	/**
	 * @desc	加载数据
	 * @author	ljt
	 * @time	2014年8月27日 下午4:03:27
	 */
	class loadData implements Runnable{
		
		@Override
		public void run() {
			System.out.println("线程initData == ");
			initData();
			// 通知主线程 数据已加载完毕
			handler.sendEmptyMessage(1);
		}
		
	}
	
	/**
	 * @desc	自定义适配器
	 * @author	ljt
	 * @time	2014年8月27日 上午11:09:13
	 */
	class MyAdapter extends BaseAdapter{

		/**
		 * How many items are in the data set represented by this Adapter.
		 */
		@Override
		public int getCount() {
			return blogList.size();
		}

		/**
		 * Get the data item associated with the specified position in the data set.
		 */
		@Override
		public Object getItem(int position) {
			return blogList.get(position);
		}
		
		/**
		 * Get the row id associated with the specified position in the list.
		 */
		@Override
		public long getItemId(int position) {
			return position;
		}

		/**
		 * 创建列表项
		 */
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if(null == convertView){
				convertView = getLayoutInflater().inflate(R.layout.source3,null);
				TextView title = (TextView)convertView.findViewById(R.id.title);
				TextView content = (TextView)convertView.findViewById(R.id.content);
				
				holder = new ViewHolder();
				holder.title = title;
				holder.content = content;
				
				convertView.setTag(holder);
			}else{
				holder = (ViewHolder) convertView.getTag();
			}
			
			holder.title.setText(blogList.get(position).getTitle());
			holder.content.setText(blogList.get(position).getContent());
			
			return convertView;
		}
		
	}
	
	class ViewHolder{
		
		private TextView title;
		
		private TextView content;
		
	}

}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SmartAdmin WebApp 1.8.7.3 (基于Bootstrap响应式布局模板)

    ### Patch 1.8.7.3 (ReactJS) - Update to react 15.5 - Webpack 2.6 - Freeze dependencies - Refactor reflux examples - ES6 class components - Refactor to eliminate deprecation warnings - More plugin ...

    cadence virtuoso layout pcell

    例如,我们可以定义不同的电压标准,例如 1.8V 和 3.3V。通过选择合适的层次,可以生成不同的器件。 Parameterized shapes 选项可以定义多层次的参数化设置,例如 via、metal 等。 4. Parameterized layers ...

    SmartAdmin1.8.7.3

    Its unique flat design and responsive layout is crafted one of a kind. SmartAdmin includes 7 version variations: Static HTML, AJAX, PHP, AngularJS 4.0, RubyOnRails, ReactJS and ASP.NET versions. Each...

    TL005加电池保护4层 PCB20150425 V1.8.pcb

    录音笔LAYOUT pcb参考 TL005加电池保护4层 PCB20150425 V1.8.pcb

    SmartAdmin 1.8.7.5前端框架下载

    Its unique flat design and responsive layout is crafted one of a kind. SmartAdmin includes 7 version variations: Static HTML, AJAX, PHP, AngularJS 4.0, RubyOnRails, ReactJS and ASP.NET versions. Each...

    Programming Windows Presentation Foundation (wpf编程英文文字版)

    Section 1.8. Resources Section 1.9. Styles and Control Templates Section 1.10. Graphics Section 1.11. Application Deployment Section 1.12. Where Are We? Chapter 2. Layout Section 2.1. ...

    骁龙652 MSM8976 PCB layout

    骁龙652虽然还是28nm工艺,但是加入了新的A72架构,集成四颗A72 1.8GHz、四颗A53 1.4GHz CPU核心以及Adreno 510 GPU核心,支持双通道LPDDR3内存,还有X8 LTE Cat.7基带,整体表现甚至不输于骁龙810。

    KSZ9131RNX中文数据手册.pdf

    • 具有3.3V/2.5V/1.8V耐压I/O的RGMII • 可 自 动 选 择 最 高 链 路 接 通 速 度(10/100/1000 Mbps)和双工模式(半双工/全双工)的自动协商 功能 • 用于差分对的片上端接电阻 • 支持 3.3V单电源操作的片...

    ArcGIS开发教程

    1.8. Layout和打印 175 1.8.1. 如何在Page Layout上添加Text 175 1.8.2. 如何在Page Layout上添加Legend 176 1.8.3. 如何在Page Layout上添加North Arrow 179 1.8.4. 如何在Page Layout上添加Scale bar 180 1.8.5. ...

    人工智能平台openpai配置文件与github下载包

    人工智能平台(AI)openpai配置文件与github下载包,其中配置文件有layout.yaml、config.yaml,github下载包有calicoctl与cni-plugins,安装过程中两个包下载不来,可通过手动方式下载上传到目的文件夹

    it6801原理

    这个是原厂的参考设计原理图,可以直layout用于验证设计,ITE6801FN支持LVCMOS输出,支持1.8V和3.3V的接口,对于有些只支持1.8VIO的IC可以考虑用这个来设计,支持RGB,YUV422的输出。

    DDR3 DDR4 LPDDR4布局布线参考

    包括板材选择、线宽、线间距、阻抗设计等

    Advanced MFC Programming

    1.8. Dialog Bar 1.9. Resizable Dialog Bar Deriving New Class from CDialogBar Resizing Edit Control Dynamic Layout Using the New Class 1.10. Adding Flyby and Tool Tip 1.11. Toggling Control Bars On/Off...

    Pango Reference Manual

    Layout Objects - High-level layout driver objects Scripts - Identifying writing systems Vertical Text - Laying text out in vertical directions Rendering with Pango Win32 Fonts and Rendering - ...

    ArcMap的VBA环境中编程

    1. 基础篇. 1 1.1. 开发环境. 1 1.2. 用户界面....1.3. GeoDataBase 31 1.4. Display 95 1.5. 图元编辑....1.6. Element 156 1.7. Symbol和Renderer 178 1.8. Layout和打印. 196 1.9. 坐标系统. 217 2. 提高篇. 251

    MP3解码资料

    (1.8V和3.3V) ),最大电流120mA),5V须先经过一个二极管或者限流电阻再进入LDOIN。 3、AX20xx内部集成 外部音频输入通道(P34与P35、P36与P37,AX2009有两路,AX2006有一路),如需使用外部音频输入通道,必须加静音...

    spid-idp-login-layout:每个身份提供商SPID的用户界面

    系统需要Jquery 1.8+。 根据尚未生效的新SPID UX准则, 存储库包含更新的模板。 第三方组件许可证 执照 css/main.min.css的Titillium字体来自[Accademia di Belle Arti Urbino]( )许可的[SIL Open Font License ...

    印刷偶极子天线设计.ppt

    (一) 实验目的 了解印刷偶极子天线的结构和工作原理 学习使用ADS Momentum设计天线的基本方法 ...熟悉ADS Layout的使用环境。 使用ADS软件设计一个1.8GHz的印刷偶极子天线。 通过仿真分析该天线的性能

    ZEND FRAMEWORK 1.11.7 中文参考文档

    •Zend Framework 1.8 •Zend Framework 1.7 •Zend Framework 1.6 •Zend Framework 1.5 •Zend Framework 1.0 •Zend Framework 0.9 •Zend Framework 0.8 •Zend Framework 0.6 •Zend Framework ...

Global site tag (gtag.js) - Google Analytics