`

android listview的使用

 
阅读更多

/**
 * 
 * 
 * 
 * @author fansxnet 
 * 
 * 
 * @deprecated pojo
 * 
 * 
 */
public class Item {

	private int i;
	private Drawable imge;

	public int getI() {
		return i;
	}

	public void setI(int i) {
		this.i = i;
	}

	public Drawable getImge() {
		return imge;
	}

	public void setImge(Drawable imge) {
		this.imge = imge;
	}

}

 

 

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class ListViewTestActivity extends Activity {
	private ListView listview;
	private List<Item> itemlist;
	private Context context;
	private ListViewAdapter listadapter;
	private Button button;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		itemlist = new ArrayList<Item>();
		this.context = this;
		button = (Button)findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				itemlist = getData();
				listadapter.addItem(itemlist);
//				listadapter.notifyDataSetChanged();
			}
			
		});
		listview = (ListView) findViewById(R.id.listView);
		listview.setOnItemClickListener(new ListItemOnClickListener());
		listadapter = new ListViewAdapter(context);
		listview.setAdapter(listadapter);

	}

	private List<Item> getData(){
		List<Item> templist = new ArrayList<Item>();
		for(int i = 0;i<10;i++){
			Item item = new Item();
			item.setI(i);
			item.setImge(getResources().getDrawable(R.drawable.ic_launcher));
			templist.add(item);
		}
		return templist;
	}
	
	
	class ListViewAdapter extends BaseAdapter {

		private List<Item> itemlist;
		private Context mContext;

		public ListViewAdapter(Context context) {
			this.itemlist = new ArrayList<Item>();
			this.mContext = context;
		}
		
		public void addItem(List<Item> addlist){
			itemlist.addAll(addlist);
			notifyDataSetChanged();
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return itemlist.size() + 1;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			if (position == this.getCount() - 1) {
				return null;
			} else {
				return itemlist.get(position);
			}
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			if (position != this.getCount() - 1) {
				return position;
			} else {
				return -1;
			}
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			Item item = new Item();
			if(position != this.getCount()-1){
				item = itemlist.get(position);
			}
			if(position == this.getCount()-1){
				LayoutInflater flater = (LayoutInflater) context.getSystemService
				(Context.LAYOUT_INFLATER_SERVICE);
				convertView = flater.inflate(R.layout.morestatus, null);
				return convertView;
			}
			convertView = LayoutInflater.from(mContext).inflate(R.layout.listviewitem, null);
			ImageView imageview = (ImageView)convertView.findViewById(R.id.imageView);
			TextView textview = (TextView)convertView.findViewById(R.id.textView);
			imageview.setImageDrawable(item.getImge());
			textview.setText(String.valueOf(item.getI()));
			return convertView;
		}
	}
	class ListItemOnClickListener implements OnItemClickListener{

		@Override
		public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
				long arg3) {
			long id = arg0.getItemIdAtPosition(arg2);
			if(id == -1){
				itemlist = getData();
				listadapter.addItem(itemlist);
				listadapter.notifyDataSetChanged();
			}else{
				Toast.makeText(context, String.valueOf(id), 5000).show();
			}
		}
		
	}
}
 
分享到:
评论

相关推荐

    Android ListView使用技巧

    本篇文章将深入探讨几个关键的Android ListView使用技巧,帮助你提升应用的用户体验和性能。 1. **适配器Adapter的使用** ListView的核心在于适配器,它负责将数据集转化为ListView可显示的视图。常见的适配器有...

    android listview使用方法demo

    总之,"android listview使用方法demo"是一个很好的学习资源,涵盖了ListView的基本使用和常见的扩展功能。通过研究这个Demo,开发者可以深入理解如何在Android应用中有效地使用ListView,展示和处理大量数据。

    android ListView 使用 示例

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,通常用于实现像通讯录、消息列表等效果。本教程将详细讲解如何在实际项目中使用ListView,并结合源码分析其工作原理。 首先,我们需要...

    Android listview使用的简单事例

    以下是一个关于如何在Android中使用ListView的简单事例: 第一步:新建`MyListActivity`继承自`ListActivity` 在创建一个基于ListView的活动时,通常会继承`ListActivity`类,因为它为ListView提供了一些便利的方法...

    android listview 里面使用checkbox

    综上所述,要在Android的ListView中使用Checkbox,我们需要创建自定义Adapter,设计Checkbox的布局,管理复选状态,监听并处理用户操作,同时注意性能优化和状态恢复。在实际项目中,这样的实现方式能够提供灵活的...

    Android ListView使用ArrayAdapter示例

    Android中使用ArrayAdapter的demo,比较简单,里面用两种方法实现,在MainActivity里面,其中一种被我注释起来了,大家把注释去掉就好了。没有使用自定义适配器,对应的我的博客地址是:...

    Android ListView使用SimpleAdapter示例

    ListView使用simpleAdapter填充实现,数据结构是HashMap,对应的我的博客地址是: http://blog.csdn.net/u012320459/article/details/47667869

    Android下使用ListView的简单Demo

    这个"Android下使用ListView的简单Demo"旨在帮助开发者理解如何在实际项目中有效地运用ListView。下面将详细介绍ListView的基本使用、适配器原理以及一些常见的优化策略。 1. **ListView的基本结构** ListView的...

    android的listview嵌套listview,列表嵌套列表 android studio版本

    在实际开发中,为了优化性能,通常会使用ViewHolder模式来减少视图查找的时间,同时对ListView进行适当的滚动优化,如使用懒加载、设置Item的复用策略等。 最后,记得处理触摸事件,确保点击父ListView的条目时不会...

    Android ListView边框圆角美化

    总的来说,Android ListView的边角圆角美化涉及到自定义布局、形状资源、适配器的使用以及一些细节的优化。通过这种方式,我们可以使ListView更加美观,提升应用的整体设计感。同时,也要注意性能问题,避免过度绘制...

    androidlistview里面使用radiobutton

    在Android开发中,ListView是一种常用的组件,用于展示可滚动的多行数据列表。而当需要在ListView中实现单选功能时,我们通常会使用RadioButton。本文将深入探讨如何在ListView中集成RadioButton,以及相关的实现...

    Android ListView 下拉刷新、上拉加载

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。`下拉刷新`和`上拉加载`功能的实现,极大地提升了用户体验,让用户能够实时获取到最新的数据。本篇文章将深入探讨如何在ListView中实现这两种...

    Android listview自动换行

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可滚动性使得它在显示数据集合时十分有用。然而,当ListView的子项(item)宽度超过屏幕宽度时,如何实现自动换行就成了一个...

    android ListView 网格布局

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的网格布局模式使得数据以多列的形式展示,增强了界面的可读性和用户体验。本文将深入探讨如何在Android中实现一个基于ArrayAdapter的网格...

    android listview使用

    本篇文章将深入探讨如何在Android应用中有效地使用ListView。 首先,我们来了解ListView的基本结构。ListView由多个列表项(List Item)组成,这些列表项通常通过一个自定义的布局文件定义。布局文件中包含每个列表...

    Android ListView使用ArrayAdapter示例2

    这是重写的继承自ArrayAdapter类的自定义适配器方式,数组元素是自定义类。对应的我的博客地址是:http://blog.csdn.net/u012320459/article/details/47667869

    android listview 固定表头,固定前几列

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,当列表项过多时,滚动时表头(Header)会随着滚动消失,给用户查看和理解数据带来不便。为了解决这个问题,开发者通常会实现一个固定...

    Android listview和viewpager解决冲突 滑动冲突

    Android listview viewpager 滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 blog 地址 : http://blog.csdn.net/aaawqqq/article/details/43824631

    android listview带有editText

    对于这些问题,可以通过设置ListView的`transcriptMode`属性、监听软键盘的显示隐藏、或者使用诸如`android:descendantFocusability`这样的XML属性来调整ListView的行为。 至于提到的"后2个包没用",可能是指在解决...

    Android ListView实例源码

    这个实例源码“Test_Golf1”很可能包含了一个完整的ListView应用示例,帮助开发者理解如何在Android中有效地使用ListView。下面将详细阐述ListView的相关知识点。 1. **ListView基本使用**: - `ListView`是...

Global site tag (gtag.js) - Google Analytics