`
guzizai2007
  • 浏览: 359629 次
  • 性别: 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 1.8.8.0 Ajax版本

    响应式布局(Responsive Layout)则是Smartadmin的另一大亮点,它能根据用户设备的不同屏幕尺寸自动调整界面布局,确保在手机、平板电脑或桌面电脑上都能提供优秀的浏览体验。这在多设备并存的时代显得尤为重要,...

    cadence virtuoso layout pcell

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

    layout 学习

    - N阱对N型有源区的不同电位的最小间距:1.8 um - N阱对N型有源区的相同电位的最小间距:4.0 um - **多晶硅(PO)**: - PMOS最小宽度:0.6 um - NMOS最小宽度:0.6 um - 用于互连线的最小宽度:0.6 um - ...

    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 ...

    jquery-easyui-1.8

    《jQuery EasyUI 1.8 实现样例详解》 jQuery EasyUI 是一款基于 jQuery 的前端框架,它为开发者提供了一系列轻量级、易于使用的组件,以帮助快速构建功能丰富的 Web 应用程序。EasyUI 的核心思想是通过简单的 HTML ...

    PADS Layout技巧

    9. **参考编号显示颜色**:Ctrl+Alt+C可以设置元器件参考编号的颜色,例如3.3V用粉红色,1.8V用橙色。 10. **移动元器件**:Ctrl+E可以快速移动元器件,Ctrl+G用于创建组合并移动。 11. **以过孔结束布线**:在...

    DDR2、DDR3、DDR4、DDR5规范,此外还有测试指导、layout指导,硬件设计指导

    DDR2的主要特点包括双倍的数据线宽(与DDR相比),每个时钟周期传输两次数据(上升沿和下降沿),工作电压降低至1.8V,减少功耗。DDR2还引入了ODT(On-Die Termination)功能,优化信号质量。测试时需要注意兼容性、...

    PHPExcel-1.8.zip

    在版本1.8中,这个库提供了丰富的功能,使得开发者能够方便地在Web应用程序中处理Excel数据。以下是对PHPExcel核心类及功能的详细说明: 1. **IO Factory**:这是PHPExcel的核心组件之一,负责文件的读取和写入。IO...

    1.8 自定义ListView中的行

    `1.8 自定义ListView中的行`这个主题主要涉及如何根据应用需求调整ListView中每一行的显示样式,使其更加个性化和符合用户界面设计。以下将详细介绍这个过程,以及相关的知识点。 首先,自定义ListView的行通常涉及...

    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

    版图layout讲座

    ### 版图Layout讲座知识点概览 #### 一、版图设计简介 1. **集成电路(Integrated Circuit):** 集成电路是指将大量的有源器件(如晶体管、二极管等)与无源器件(如电阻、电容等)以及它们之间的互连线集成在一块...

    DDR-layout指导手册

    DDR2采用SSTL_1.8接口,并使用single-ended Parallel Termination。 #### 六、导线宽度和间距 - **间距定义**: - S1: 同一信号组内两相邻导线之间的间距。 - S2: 不同信号组之间两相邻导线之间的间距。 - S3: ...

    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...

    三星EMMC参考设计

    此文档详细地提供了eMMC存储设备的PCB板设计参考,包括埋孔设计、4位总线模式、去耦电阻的选择、1.8V电源的连接、信号的布局和走线以及电源和地平面的处理等多个方面。这份文档的技术版本为Ver.1.3,发布日期为2016...

    MT7620A Layout Guide

    - **3.3V至1.8V LDO:** 提供稳定的1.8V电压给DDR2内存。 - **3.3V至1.25V LDO:** 为PMU电路供电。 - **DC-DC转换器:** 负责将输入电压转换为芯片所需的多种不同电压等级。 ### 六、RF匹配网络 RF匹配网络的设计...

    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. ...

Global site tag (gtag.js) - Google Analytics