如何使用ListView?

如何使用ListView?

ArrayAdapter的使用

package com.mengmeng.android_listview;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity implements OnItemClickListener  {

	private ListView mListView;
	private ArrayAdapter<String> mArray_Adapter;
	private SimpleAdapter mSimpleAdapter;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		mListView = (ListView) findViewById(R.id.listView);
		//加载数据源
		String[] str = {"大眼萌1","大眼萌2","大眼萌3","大眼萌4","大眼萌5"};

		mArray_Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, str);
		mListView.setAdapter(mArray_Adapter);

		mListView.setOnItemClickListener(this);
	}

	//监听
	@Override
	public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
		String text = mListView.getItemAtPosition(arg2)+"";
		Toast.makeText(this, text, Toast.LENGTH_SHORT).show();
	}
}

simpleAdapter的使用

@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

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

		getData();
		mSimpleAdapter = new SimpleAdapter
				(this, list, R.layout.list_item, new String[] {"text","image"}, new int[] {R.id.text,R.id.image});
		mListView.setAdapter(mSimpleAdapter);
	}

	private List<Map<String,Object>> getData(){
		list = new ArrayList<Map<String,Object>>();
		Map<String,Object> map1 = new HashMap<String, Object>();
		map1.put("text", "java");
		map1.put("image", R.drawable.ic_launcher);

		Map<String,Object> map2 = new HashMap<String, Object>();
		map2.put("text", "javaScript");
		map2.put("image", R.drawable.ic_launcher);

		Map<String,Object> map3 = new HashMap<String, Object>();
		map3.put("text", "C++");
		map3.put("image", R.drawable.ic_launcher);

		Map<String,Object> map4 = new HashMap<String, Object>();
		map4.put("text", "Android");
		map4.put("image", R.drawable.ic_launcher);

		Map<String,Object> map5 = new HashMap<String, Object>();
		map5.put("text", "web");
		map5.put("image", R.drawable.ic_launcher);

		list.add(map1);
		list.add(map2);
		list.add(map3);
		list.add(map4);
		list.add(map5);

		return list;
	}
<h3>使用OnScollListener()  notifyDataSetChanged()</h3>@Override
public void onScroll(AbsListView view, int firstVisibleItem,
		int visibleItemCount, int totalItemCount) {
	// TODO Auto-generated method stub

}

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

	if(scrollState == SCROLL_STATE_FLING){//用力划一下
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("text", "正在添加"+i++);
		map.put("image", R.drawable.ic_launcher);
		list.add(map);
		<strong>mSimpleAdapter.notifyDataSetChanged();</strong>
		Toast.makeText(this, "正在滚动...", Toast.LENGTH_SHORT).show();

	}else if(scrollState == SCROLL_STATE_IDLE){//停止滚动

	}else if(scrollState == SCROLL_STATE_TOUCH_SCROLL){//正在滚动

	}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 10:59:53

如何使用ListView?的相关文章

Android 监听ListView、GridView滑动到底部

// 监听listview滚到最底部mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { // 当不滚动时 case OnScrollListener.SCROLL_STATE_IDLE: // 判断滚动到底部 if (view.get

C# 将Access中时间段条件查询的数据添加到ListView中

C# 将Access中时间段条件查询的数据添加到ListView中 一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加Item. 首先,ListView的Item属性包括Items和SubItems.必须先实例化一个ListIteView对象.具体如下: ListViewItem listViewItem=new ListViewItem(); l

[ ObjectListView ] - ListView的增强控件 - 前言 (翻译)

********************************************************************************** 原  标 题: A Much Easier to Use ListView 原文地址: https://www.codeproject.com/Articles/16009/A-Much-Easier-to-Use-ListView 翻       译: 于国栋 http://www.shannon.net.cn *********

Android ListView工作原理完全解析(转自 郭霖老师博客)

原文地址:http://blog.csdn.net/guolin_blog/article/details/44996879 在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况.ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了. 另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到

360手机助手(二):侧拉栏drawerLayout+Tab+Viewpager+ListView+Pulltorefresh+imageloder

整个项目的框架在ContentPager,要熟悉这个类. 简介 完成侧拉栏的显示,侧拉首页对应的:首页+应用+游戏这3个 tab,包含的知识点有:请求数据 +pullTofresh + ImageLoader +轮播图 + listView 效果图: 侧拉栏的实现 V4包中的DrawerLayout实现侧拉效果,每个侧拉的item对应一个fragment,点击该item时,先把所有的fragment隐藏 + 文字设置未选中,然后才创建对应的fragment并显示 怎么实现侧拉栏的显示与隐藏? 点

ListView

一.ListView入门 1.定义ListView在布局中 2.定义ListView的数据适配器 3.实现baseAdapter的getCount方法和getView方法. 二.ListView的优化 1.缓存对象 //convertView 历史缓存对象 @Override public View getView(int position, View convertView, ViewGroup parent) { TextView tv; if(convertView == null){ /

Android——ListView布局+适配器(三)

Android--ListView布局+适配器(三) package com.example.administrator.newstop; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import andro

Android——ListView多布局+适配器(二)

Android--ListView多布局+适配器(二) <span style="font-size:18px;">package com.example.administrator.newstop.entity; /** * Created by Administrator on 2016/8/4. */ public class News { private String title; private String pubDate; private int img; p

C#如何解决对ListView控件更新以及更新时界面闪烁问题

第一个问题:如何更新ListView控件内容 很多时候运行窗体程序时,由于程序中使用了多线程加之操作不当,所以在对控件操作时会出现下面这样的异常: 这是因为我们在窗体中添加的控件都有属于自己的线程,所以不能从其它线程来访问它. 那要如何解决? 使用委托:MethodInvoker,我用这个挺方便的.下面举一个用例: 1 //调用InitListView(),便可以对ListView控件进行自由更新啦 2 private void InitListView() 3 { 4 MethodInvoke

【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

数据库的创建和sql语句增删改查 1. 加载驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, name varchar(20), age integer ); 添加: insert into person(name, age) values('lisi', 19); 删除: delete from person where _id = 1; 修改: update person set name =