`
hwy1782
  • 浏览: 153346 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ListView用法

 
阅读更多

两个demo,参考hellogv的blog

 

主要的步骤如下:

package com.example.listviewtest;

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

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ListView;
import android.widget.SimpleAdapter;

/**
 * ListView的用法:
 * 1.初始化listview的数据源
 * 2.通过SimpleAdapter将数据源与listview的layout绑定
 * 3.将构建好的 adapter 与 listView 绑定
 * @author hint
 */
public class MainActivity extends Activity {

	List<HashMap<String,String>> myList; 
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		//初始化数据源
		initData();
		
		ListView listView = (ListView)findViewById(R.id.myListView);
		
		//数据源 与 listview的layout适配
		SimpleAdapter mSchedule = new SimpleAdapter(this, myList, R.layout.item_list,
				new String[]{"ItemTitle","ItemText"}, 
				new int[]{R.id.itemTitle,R.id.itemText});
		
		//listview绑定adapter
		listView.setAdapter(mSchedule);
		
	}

	private void initData(){
		myList = new ArrayList<HashMap<String,String>>();
		for(int i = 0; i < 30 ; i++){
			HashMap<String,String> map = new HashMap<String, String>();
			map.put("ItemTitle", "title "+i);
			map.put("ItemText", "text "+i);
			
			myList.add(map);
		}
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

demo2:

这个demo复杂一点:

package com.example.listviewtest;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

/**
 *1.自定义adpter实现BaseAdapter接口->ListViewAdpter。 
 *2.ListViewAdpter中通过LayoutInflater(布局泵)渲染listView中每个单独的view。
 *3.将每个单独的view组成一个view数组
 *4.绑定当前的listview和ListViewAdpter
 * @author hint
 */
public class MainActivity2 extends Activity {

	
	private ListView listView ;
	private String[] itemTitles = {"标题1","标题2","标题3","标题4",};
	private String[] itemTexts = {"内容1","内容2","内容3","内容4",};; 
	private int[] itemImagese = {R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		listView = (ListView)findViewById(R.id.myListView);
		listView.setAdapter(new ListViewAdpter(itemTitles,itemTexts,itemImagese));
	}

	
	class ListViewAdpter extends BaseAdapter{
		
		View[] itemViews;
		
		public ListViewAdpter(String[] itemTitles,String[] itemTexts,int[] itemImagese) {	
			itemViews = new View[itemTitles.length];
			
			for(int i = 0; i < itemTitles.length; i++){
				itemViews[i] = makeItemView(itemTitles[i],itemTexts[i],itemImagese[i]);
			}
		}

		private View makeItemView(String itemTitle, String itemText, int itemImages) {
			LayoutInflater inflater = (LayoutInflater)MainActivity2.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
//			LayoutInflater inflater2 = MainActivity2.this.getLayoutInflater();
			
			View itemView  = inflater.inflate(R.layout.item_list, null);
			TextView text = (TextView)itemView.findViewById(R.id.itemText);
			text.setText(itemText);
			
			TextView title = (TextView)itemView.findViewById(R.id.itemTitle);
			title.setText(itemTitle);
			
			ImageView image = (ImageView)itemView.findViewById(R.id.itemImage);
			image.setImageResource(itemImages);
					
			return itemView;
			
		}

		@Override
		public int getCount() {
			return itemViews.length;
		}

		@Override
		public Object getItem(int position) {
			return itemViews[position];
		}

		@Override
		public long getItemId(int position) {
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			if(convertView == null){
				return itemViews[position];
			}
			return convertView;
		}
		
	}
	
	
	
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

 

分享到:
评论

相关推荐

    c# listview 使用方法

    c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法c# listview 使用方法...

    LISTVIEW 用法

    以上内容详细介绍了 `ListView` 控件的基本使用方法,包括初始化、添加和删除项目、从数据库读取数据、获取选中项目的值以及实现简单的排序功能。通过这些操作,开发者可以轻松地利用 `ListView` 控件创建出功能强大...

    android中一个简单的LIstView用法例子

    这个简单的ListView用法例子将帮助初学者理解和掌握如何在实际项目中运用ListView。 首先,我们来了解一下ListView的基本结构。ListView是Android SDK中的一个视图类,继承自AbsListView。它的核心功能是展示一个可...

    C#WinForm ListView用法

    1. 创建分组:使用ListView.Groups集合,`ListViewGroup group = this.listView1.Groups.Add("分组名");` 2. 将项分配到分组:`ListViewItem item = this.listView1.Items.Add("项内容"); item.Group = group;` 四...

    ListView用法大全

    ListView用法大全 ListView 是一种常用的Windows Forms控件,用于显示项目列表。它提供了多种视图模式,包括Details、LargeIcon、List、SmallIcon、Tile等。以下是ListView的详细用法: 一、ListView 类 ListView...

    Listview使用方法实例

    在这个“Listview使用方法实例”中,我们将深入探讨如何利用C#有效地操作ListView。 1. **初始化ListView** 初始化ListView控件时,我们需要在设计时或运行时设置其属性。例如,`View`属性决定显示的视图类型,`...

    android listview使用方法demo

    本教程将通过一个名为"4_21_ListDemoInternet"的示例项目,详细介绍ListView的使用方法。 首先,我们来了解ListView的基本构成。ListView包含一个Adapter,它负责将数据转化为可以显示在ListView中的视图。Adapter...

    C# WINFORM ListView用法详解 .docx

    C# WINFORM ListView用法详解 ListView 控件是 WinForm 中最常用的控件之一,它提供了多种视图模式来显示数据。下面是 ListView 控件的详细用法和知识点: 一、ListView 的基本属性 1. FullRowSelect:设置是否行...

    ListView用法大集合

    这使得创建简单的列表界面变得非常便捷,但如果你需要更复杂的定制,可能需要直接使用ListView并自定义Adapter。 最后,`8.ListViewBaseAdapterDemo`涉及到了BaseAdapter。BaseAdapter是所有Adapter的基类,它提供...

    Listview控件用法,listview控件,.net控件,.net listview控件用法

    下面将详细介绍ListView控件的使用方法、特性以及如何在.NET环境中进行操作。 1. 添加和删除列 在ListView控件中,数据通常以列的形式展示。你可以通过调用`Columns`属性来添加新的列。例如: ```csharp ...

    C# winform中ListView用法

    ### C# WinForm中ListView控件的使用方法 在C# WinForm开发中,`ListView` 控件是一种非常实用的工具,它可以帮助开发者以多种视图形式(如图标、列表、详细信息等)来展示数据集合。下面将详细介绍如何在C# ...

    VB_listview用法

    在实际开发中,开发者可以根据需求灵活使用这些属性和方法,构建出符合界面设计和功能需求的ListView控件。例如,通过调整`View`属性实现不同的显示样式,利用`Checked`属性处理复选框状态,或者通过`Sort()`方法对...

    C#-listview用法详解

    ### C# ListView 控件用法详解 #### 一、ListView 类概述 ...通过以上内容,我们可以了解到 C# 中 `ListView` 控件的基本用法及其主要属性、方法和事件。这些知识对于开发基于 Windows Forms 的应用程序来说至关重要。

    ListView使用方法

    ListView 使用方法 ListView 是 Android 中最常用的视图之一,用于显示列表数据。下面将详细介绍 ListView 的使用方法,包括创建 ListView、绑定网络数据、自定义子项等。 创建 ListView 首先,在 Android 的 XML...

    ListView 使用方法

    ### ListView 使用方法详解 在Windows Forms应用程序开发中,`ListView` 控件是非常常用的一个控件,它可以用来展示一系列的数据项,并且支持多种视图模式(如大图标、小图标、列表、详细信息等)。本文将详细介绍...

    ListView 用法

    ### ListView 用法详解 在Android开发中,`ListView`是一种非常重要的UI组件,它能够以列表的形式展示数据集合,并支持滚动操作。本篇将详细解释`ListView`的基本概念、如何自定义`ListView`的适配器以及如何实现...

    android自定义listview使用方法

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。自定义ListView可以实现更丰富的界面效果和交互功能,提升用户体验。本教程将详细讲解如何在Android中实现自定义ListView,包括基本的ListView、...

    xml序列化,ListView用法,原创

    总的来说,XML序列化提供了将复杂数据结构转化为易于处理的XML格式的方法,而ListView则是一种高效的用户界面组件,用于显示大量数据。两者结合,可以帮助开发者构建出功能强大且用户友好的数据展示应用。在这个过程...

    安卓ListView用法实例附上源码.rar

    本实例将帮助开发者深入理解ListView的用法,包括数据绑定、适配器、自定义布局以及性能优化等方面。 首先,我们来看ListView的基础结构。ListView主要由两部分组成:数据集和适配器(Adapter)。数据集是存储待...

    Android ListView用法演示实例.rar

    Android ListView用法演示实例,layout的xml文件名需要全部小写,下面来看这几个具体的例子:  ActivityList1:介绍ListView和ArrayAdapter组件。  ActivityList2:介绍cusor和CursorAdapter(有错误,没有调试...

Global site tag (gtag.js) - Google Analytics