`

开源框架ignition[二]

阅读更多
1 新建android项目作为library导入ignition-core
ignition-support缺少guava导入之

2 新建android项目add ignition-core作为library
同样导入guava
修改InfinityAdapter

public InfinityAdapter(Activity activity, AbsListView gridView) {
        super(activity, gridView,R.layout.loading_item);
    }


增加GridViewActivity
package com.github.ignition.samples.core;

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.GridView;

import com.github.ignition.core.tasks.IgnitedAsyncTask;

public class GridViewActivity extends Activity implements OnScrollListener {
	private static final int PAGE_SIZE = 10;

	private InfinityAdapter adapter;

	private GridView mGrid;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.grid_1);
        mGrid = (GridView) findViewById(R.id.myGrid);
		adapter = new InfinityAdapter(this, mGrid);
		
		mGrid.setAdapter(adapter);
		mGrid.setOnScrollListener(this);

		loadNextPage();
	}

	private void loadNextPage() {
		adapter.setIsLoadingData(true);
		IgnitedAsyncTask<EndlessListActivity, Void, Void, Void> task = new IgnitedAsyncTask<EndlessListActivity, Void, Void, Void>() {
			@Override
			public Void run(Void... params) throws Exception {
				SystemClock.sleep(1000);
				int offset = adapter.getCount();
				for (int i = 1; i <= PAGE_SIZE; i++) {
					adapter.getData().add(i + offset);
				}
				return null;
			}

			@Override
			public boolean onTaskCompleted(Void result) {
				adapter.setIsLoadingData(false);
				adapter.notifyDataSetChanged();
				return true;
			}
		};
		task.execute();
	}

	@Override
	public void onScroll(AbsListView view, int firstVisibleItem,
			int visibleItemCount, int totalItemCount) {
		if (adapter.shouldRequestNextPage(firstVisibleItem, visibleItemCount,
				totalItemCount)) {
			loadNextPage();
		}
	}

	@Override
	public void onScrollStateChanged(AbsListView view, int scrollState) {
	}
}



增加grid_1.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myGrid"
	android:layout_width="match_parent" 
	android:layout_height="match_parent"
    android:padding="10dp"
    android:verticalSpacing="10dp"
    
    android:horizontalSpacing="10dp"
    android:numColumns="auto_fit"
    android:columnWidth="60dp"
    android:stretchMode="columnWidth"
    
    android:gravity="center"
    />


修改SampleListActivity
增加
adapter.add(new Sample("GridViewAdapter", GridViewActivity.class));


AndroidManifest.xml增加
 <activity android:name=".GridViewActivity" />
分享到:
评论
1 楼 lianwanf 2013-01-10  
  大神,求源码,很想要那jar包.官方的不懂下载啊.谢谢啊.我的邮箱361086407@qq.com

相关推荐

    29.[开源][安卓]ignition-master

    29 [开源][安卓]ignition master 在编写Android应用时 通过提供即用组件和包含许多样板文件的实用类 ignition可以让你的Android应用快速起步 ignition涵盖的区域包括: Widget Adapter Dialog等UI组件; 允许编写...

    Android应用开发工具ignition.zip

    ignition 通过提供即用组件和包含许多样板文件的实用类,可以让你的 Android 应用快速起步。ignition 涵盖的区域包括: Widget、Adapter、Dialog 等 UI 组件; 允许编写简单却强大的网络代码...

    Python库 | gym-ignition-nightly-1.0b3.dev422.tar.gz

    Gym Ignition是基于OpenAI Gym框架的扩展,专注于机器人模拟和强化学习。 首先,让我们了解什么是OpenAI Gym。OpenAI Gym是一个用于开发和比较强化学习算法的开源平台。它提供了一个标准接口,使得研究人员能够轻松...

    Laravel 6.0 中文PDF文档

    在异常处理方面,Laravel 6.0 引入了 Ignition,这是一个由 Freek Van der Herten 和 Marcel Pociot 创建的开源错误和异常页面项目。Ignition 提供了比传统错误显示更友好的界面,支持 Blade 错误定位、常见问题的...

    rapidfire:基于Express的Web服务器框架

    熊熊大火基于Express的WebServer框架快速开始安装npm i -S @luasenvy/rapidfire启动Web服务器const { RapidFire } = require('@luasenvy/rapidfire')const rapidFire = new RapidFire({ host: 'localhost', port: ...

    ROS2.9.27汉化包--避风港整理改进版

    ROS,全称Robot Operating System,是一个开源操作系统框架,专为机器人设备和软件设计。ROS2是ROS的第二个主要版本,提供了许多改进和新特性,旨在解决ROS1的一些痛点,如实时性、安全性以及跨平台兼容性。ROS...

    ign-launch4-release

    IGNition Launch是IGN框架的一部分,这是一个专门为机器人模拟和开发设计的库。IGNition Launch允许用户创建、管理和执行复杂的仿真场景,它提供了灵活的方式来组织和控制仿真过程中的各种元素,如模型、传感器、...

    Apache Ignite(V1.5.0)中文开发手册

    Apache Ignite是一个开源的分布式数据管理平台,它为用户提供了一个高性能、集成化和分布式的内存计算框架。与传统的依赖磁盘存储的数据库系统相比,Apache Ignite能够显著提升大数据集上的事务处理和计算性能,性能...

    gazebodistro:定义Open Robotics依赖项的文件

    点火项目包含了多个子项目,如点火模拟器(Ignition Gazebo)、点火通信(Ignition Transport)和点火数学(Ignition Math)等,它们为机器人系统提供了基础服务,如模拟、网络通信和数学运算。 "gazebodistro"存储...

    这个repo包含一个基于PDDL的ROS2规划系统。.zip

    这通常涉及到Gazebo或Ignition等仿真工具,以及相关的测试脚本。 7. **Documentation**:良好的文档是理解任何开源项目的关键。这里可能有README文件,解释如何构建、运行和配置系统,以及如何自定义PDDL模型。 ...

    V8培训资料

    V8作为Chrome浏览器的核心组件,它以高效执行JavaScript代码而闻名,同时也被许多其他项目和框架如Node.js采用。这份资料将涵盖以下几个关键知识点: 1. **V8简介**:V8是由Google开发的一款开源的JavaScript引擎,...

    VS2019谷歌V8引擎8.2版本,编译好的Release版DLL和LIB,和测试demo

    V8引擎是由Google开发的一款高性能JavaScript和WebAssembly的开源运行时环境。它是Chrome浏览器的核心组成部分,也常被用于服务器端的JavaScript应用。在本资源中,我们关注的是V8引擎的8.2版本,该版本是针对Visual...

    guyuehome ros2 21 class

    ROS (Robot Operating System) 是一个开源操作系统,专为开发机器人软件而设计。它提供了一整套框架、工具和库,使开发者能够轻松地构建复杂的机器人应用程序。标题中的"guyuehome ros2 21 class"可能指的是一个关于...

    ros安装指南和资源!!!

    ROS,全称Robot Operating System(机器人操作系统),是一个开源操作系统,为机器人设备和软件提供标准化的框架,便于开发、测试和部署。ROS提供了丰富的工具、库和协议,使得开发者能够更轻松地实现机器人的感知、...

    Ignite-Assignment1

    Apache Ignite是一个开源的内存数据网格,它可以提供分布式内存计算、缓存以及数据存储功能,广泛应用于提升应用程序的性能和可扩展性。在Java开发环境中,Ignite通常用于处理大数据和实时分析任务。 描述中的信息...

    test

    此外,了解V8引擎的特性,如预编译(TurboFan、Ignition)和垃圾回收机制,也能进一步优化性能。 九、跨平台应用 借助React Native、Electron等技术,JavaScript不仅可以用于Web开发,还能开发原生移动应用和桌面...

    node-family:【Node.js 面试+学习】 涵盖大部分nodejs程序员应该了解熟悉的知识

    7. **包管理器npm**:Node.js的包管理器npm是全球最大的开源软件库,学习如何正确使用`package.json`,管理依赖,以及发布自己的模块是必要的。 8. **Promise和async/await**:Node.js从v7.6版本开始支持ES6的...

Global site tag (gtag.js) - Google Analytics