展会信息港展会大全

Android 循环ListView
来源:互联网   发布日期:2015-11-26 13:09:59   浏览:649次  

导读:Android 循环ListView 之前做个iOS下的,实现起来比较复杂,后来在网上找了一个例子,其实现起来比较容易,思路很好,这个我做个整理代码下载:http://pan.bai...

Android循环ListView之前做个iOS下的,实现起来比较复杂,后来在网上找了一个例子,其实现起来比较容易,思路很好,这个我做个整理

代码下载:http://pan.baidu.com/s/1bnEKxd1

这个类就是个ListView的Adapter没什么特别的。

ListAdapter.java

package com.pactera.infinitescrollview;

import java.util.List;

import android.content.Context;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

public class ListAdapter extends BaseAdapter{

private List list;

private LayoutInflater mInflater;

public ListAdapter (Context context,List list) {

this.list= list;

this.mInflater = LayoutInflater.from(context);

}

@Override

public int getCount() {

// TODO Auto-generated method stub

if (list != null) {

//这个内容要是显示内容的3倍

return list.size() * 3;

}

return 0;

}

@Override

public Object getItem(int arg0) {

// TODO Auto-generated method stub

return list.get(arg0 % list.size());

}

@Override

public long getItemId(int arg0) {

// TODO Auto-generated method stub

return arg0 % list.size();

}

@Override

public View getView(int postition, View converView, ViewGroup arg2) {

// TODO Auto-generated method stub

ViewHoler viewHoler = null;

if (converView == null) {

viewHoler = new ViewHoler();

converView = mInflater.inflate(R.layout.adapter_list_layout, null);

viewHoler.tvText = (TextView)converView.findViewById(R.id.adapter_list_layout_tv);

converView.setTag(viewHoler);

}else {

viewHoler = (ViewHoler)converView.getTag();

}

viewHoler.tvText.setText(list.get(postition % list.size()));

return converView;

}

static class ViewHoler{

TextView tvText;

}

}

MainActivity.java

package com.pactera.infinitescrollview;

import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.app.Activity;

import android.util.Log;

import android.view.Menu;

import android.widget.AbsListView;

import android.widget.ListView;

import android.widget.AbsListView.OnScrollListener;

public class MainActivity extends Activity implements OnScrollListener {

private ListView listView;

private List list;

private ListAdapter adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

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

list = getList();

adapter = new ListAdapter(this, list);

listView.setAdapter(adapter);

listView.setOnScrollListener(this);

listView.setSelection(list.size());

}

public List getList() {

List list = new ArrayList();

for (int i = 0; iadapter.getCount() - 2) {

listView.setSelection(firstVisibleItem - list.size());

}

}

@Override

public void onScrollStateChanged(AbsListView arg0, int arg1) {

// TODO Auto-generated method stub

}

}

重点在上面的onScroll方法 的if语句

activity_main.xml

adapter_list_layout.xml

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港