android开发学习篇之ListView详解_chenchudongsg的博客-程序员宅基地

技术标签: android开发  android  listview  

我们在学习android开发中必然会学习到ListView,可以说ListView使用次数在android开发中非常多,因此我们要熟悉使用Listview,接下来写出我在网上学习到使用listview的几种方法:

1、使用ArrayAdapter适配器写出只存放简单字符串的listview以及使用SimpleAdapter写出带标题的listview

2、SimpleAdapter适配器带图片的ListView列表

3、BaseAdapter适配器自定义listview

第一种:使用ArrayAdapter适配器写出只存放简单字符串的listview以及使用SimpleAdapter写出带标题的listview

源代码如下:

package com.example.day2application;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class ListViewActivity extends ListActivity {

	String[] arrayList={"姓名:小明","电话:134947498949","QQ:78578438","地址:广东"};
	//String[] content={"小明","134947498949","78578438","广东"};
	ListView mlistView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mlistView=getListView();
		setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayList));
		mlistView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				// TODO Auto-generated method stub
				Toast.makeText(ListViewActivity.this, "点击了"+arrayList[position],Toast.LENGTH_SHORT).show();
			}
		});
		
	}
	public class MyListAdapter extends ArrayAdapter<Object>{

		public MyListAdapter(Context context, int textViewResourceId) {
			super(context, textViewResourceId);
			// TODO Auto-generated constructor stub
		}
		
	}

}


运行结果如下:

使用SimpleAdapter:

package com.example.day2application;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.view.View;
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 TitleListViewActivity extends ListActivity {

	private ListView mlistview;
	String titleStr[]={"姓名","电话","QQ","地址"};
	String contentStr[]={"小明","135785949","446545","广东"};
	ArrayList<Map<String, Object>> arrayList=new ArrayList<Map<String,Object>>();
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mlistview=getListView();
		int lengh = titleStr.length;
		for(int index=0;index<lengh;index++){
			Map<String,Object> map=new HashMap<String, Object>();
			map.put("title", titleStr[index]);
			map.put("contentStr", contentStr[index]);
			arrayList.add(map);
		}
		//android.R.layout.simple_list_item_2这里可以自己写自定义的布局文件,
		SimpleAdapter simpleAdapter=new SimpleAdapter(this, arrayList, android.R.layout.simple_list_item_2, new String[]{"title","contentStr"}, new int[]{android.R.id.text1,android.R.id.text2});
		setListAdapter(simpleAdapter);
		mlistview.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				Toast.makeText(TitleListViewActivity.this, "点击了:标题是"+titleStr[position]+",内容:"+contentStr[position], Toast.LENGTH_LONG).show();
			}
		});
	}

}


运行结果如下:




第二种:带图片的ListView列表

先写布局配置文件activity_main_list.xml:


 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
     >

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:adjustViewBounds="true"
        android:padding="2dip"
        />
    <TextView 
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_above="@+id/text2"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        />
    <TextView 
         android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_alignParentBottom="true"
        android:ellipsize="marquee"
        android:singleLine="true"
        />
</RelativeLayout>


代码实现:

package com.tocean.android02;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.app.Activity;
import android.app.ListActivity;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
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.Button;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

/**
 *  
 * @author Administrator
 *
 */
public class ListViewActivity extends ListActivity{

	private ListView listView;
	private String[] title={"姓名","电话","QQ","地址"};
	private String[] content={"小明","1334343434","33392832","广东"};
	private ArrayList<Map<String, Object>> arrayList=new ArrayList<Map<String,Object>>(); 
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		listView=getListView();
		for(int i=0;i<title.length;i++){
			Map<String,Object> map=new HashMap<String, Object>();
			map.put("image", R.drawable.ic_launcher);
			map.put("title", title[i]);
			map.put("content", content[i]);
			arrayList.add(map);
		}
		SimpleAdapter simpleAdapter=new SimpleAdapter(this, arrayList, R.layout.activity_main_list, new String[]{"image","title", "content"},new int[]{R.id.image,R.id.text1,R.id.text2});
		setListAdapter(simpleAdapter);
		listView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> adapterView, View view, int position,
					long id) {
				 Toast.makeText(ListViewActivity.this, "点击了标题是:"+title[position], Toast.LENGTH_SHORT).show();
				
			}
			
		});
	}

}


运行效果:


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chenchudongsg/article/details/36187635

智能推荐

SpringData Jpa 入门(接口)_灬囖的博客-程序员宅基地

主要来看看Spring Data JPA提供的接口,也是Spring Data JPA的核心概念:1:Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。2:CrudRepository :是Repository的子接口,提供CRUD的功能3:PagingAndSortingRepository:是

CentOS 6.5安装jdk1.8_diwei8531的博客-程序员宅基地

1、源码包准备:首先到官网下载jdk-8u66-linux-x64.tar.gz,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2、解压源码包通过终端在/usr/local目录下新建java文件夹,命令行:sudo mkdir /usr/loca...

一名初入职场的freshman-梦想成为一名优秀的“产品经理”_Curry_Fans的博客-程序员宅基地

不知不觉已入职8个多月了,一直想为自己的职业生涯留下点什么,于是乎注册了程序员宅基地,之前都用CSDN下过资料,也看过很多大牛的博客,觉得真心不错,也希望自己的原创博客可以对以后的90后,00后有所帮助。        现在在一家全国知名的IT公司做产品规划工作,其实现在做岗位和之前校招应聘的职位有很大差距。和很多刚刚毕业的应届生一样,我开始想做的就是一名普通的“屌丝程序猿”,没想过太多,希望

腾讯工蜂(TGit)之代码上传_dyjsteve的博客-程序员宅基地_工蜂代码

一.腾讯工蜂1.什么是腾讯工蜂?腾讯工蜂(曾用名 TGit)是腾讯经过 10 年的积累和摸索打造的第四代企业代码管理协作解决方案。简单的说,跟gitHub一样,是一个面向开源及私有软件项目的托管平台。腾讯工蜂地址:http://git.code.tencent.com可以用微信扫二维码登录。登录后,可以创建相应的项目组,将相应的组员拉进项目组中,然后创建项目。或者个人直...

CRC校验_oathevil的博客-程序员宅基地

CRC检验原理实质是利用模2除法(除数由生成多项式决定)来求得余数,生成检验码,将其并入数据项末尾作为数据序列(比特序列)发送出去。接收方拿到数据序列后,使用相同的生成多项式进行模2除法,若可除尽,则正确;反之,则数据有误。模2除法可用计算机方法进行表示。相关算法有 直接计算法 、驱动表法、 直驱表法、颠倒的直驱表法等。由于直接计算法效能较差,故有其衍生算法:驱动表法、 直驱表法、颠倒

实现全方位数据共享 博达校园网解决方案_weixin_33692284的博客-程序员宅基地

  早期的校园网只是共用内部教育系统主机资源,共享简单数据库,多以二层交换为主,很少有三层应用,而且网络安全存在问题,不具备增值管理能力,制约了校园网适应教学业务快速发展。  针对于此,上海博达通信数据通信有限公司开发了一套符合现代校园网络需求的博达校园网解决方案。这套方案可以实现校园内部全方位的数据共享,应用三层交换,提供全面的QoS保障服务,使网络安全可靠,从而...

随便推点

空间统计说历史:奥德修斯的归家之路_虾神说D的博客-程序员宅基地

荷马同学的《伊利亚特》在叙述完史上最强半神阿喀琉斯击杀特洛伊第一高手赫克托尔的传奇之战后,以赫克托尔的葬礼为结局,就结束了。但是骄傲不逊的阿喀琉斯,用希腊联军统帅阿伽门农的话来说“在众神所宠爱的军阀之中,我最痛恨这个家伙 (all the warlords loved by the gods, I hate him the most.)”所以也就注定了他的悲剧收场——我灰常喜欢皮特演的阿喀

解决 pip conda 安装下载时网速过慢的问题_hanzy88的博客-程序员宅基地

PIP对于Python开发用户来讲,PIP安装软件包是家常便饭。但国外的源下载速度实在太慢,浪费时间。而且经常出现下载后安装出错问题。所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成功率。国内源: 新版ubuntu要求使用https源,要注意。清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mir...

狂神说MYSQL基础笔记_带上耳机世界与我无关的博客-程序员宅基地

1 认识MySQL 说明:是B站狂神说Mysql的学习笔记 前端:展示页面数据 后端:连接数据库JDBC,控制视图跳转,和给前端传递数据 数据库:存数据 程序员的分类: 只会CRUD,可以混饭吃=初级 学操作系统,数据结构和算法=中级 离散数学,数字电路,编译原理+...

模型融合_HawardScut的博客-程序员宅基地

一、 Stacking代码如下:# coding=utf8from sklearn import datasetsfrom sklearn.ensemble import RandomForestClassifier, ExtraTreesClassifier, GradientBoostingClassifierfrom sklearn.cross_validation impor...

Linux指令 文件目录类(五)_栗子君的博客-程序员宅基地

pwd显示当前工作目录的绝对路径ls [选项] [目录或是文件]-a : 显示当前目录所有的文件和目录,包括隐藏文件-l :以列表的方式显示信息cd [参数]切换到指定目录cd ~ 回到自己的家目录cd .. 回到当前目录的上一级目录mkdir用于创建目录-p 创建多级目录rmdir删除一个目录,只能删除空目录如果要删除非空目录,需要使用 rm -rf...

Bugku———入门逆向详解_1匹黑马的博客-程序员宅基地

入门逆向题目地址:bugku——入门逆向解题首先我运行了一下,发现啥都没有,一闪而过了,随后我拖进OD里看了一下,发现了一串字符串:这里有很多的传参操作,而且flag对应的Unicode编码就是66、6C、61、67。拖进IDA里,定位到刚才的位置,选中字符串按r转义即可。成功得到flag:flag{Re_1s_S0_C0oL}...

推荐文章

热门文章

相关标签