一、在代码中创建(不适用XML布局文件)

1.创建一个项目:ListViewLearn

2.修改MainActivity,继承于ListActivity

3.创建一个String数组,用来保存ListView中的现实内容

package com.learn.listviewlearn.utility;

public class Util {
public static final String[] COUNTRYS = { "中国", "美国", "俄罗斯", "英国", "法国" };
}

4.修改onCreate方法,设置一个Adapter,数组中的内容在ListView中现实出来

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_main);
this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, Util.COUNTRYS));
}

二、使用XML布局文件来定义ListView的样式

1.修改activity_main.xml文件,添加一个ListView,id必须为android:id="@android:id/list"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF00" >
</ListView> </LinearLayout>

2.修改OnCreate方法

    @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, Util.COUNTRYS));
}

三、使用XML布局文件来定义ListViewItem的样式

1.首先创建一个list_view.xml的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <ImageView
android:id="@+id/imageViewIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/icon" >
</ImageView> <TextView
android:id="@+id/textViewContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TextView> </LinearLayout>

2.然后创建一个Adapter继承于BaseAdapter,主要修改getCount()和getView()方法

package com.learn.listviewlearn.adapter;

import com.learn.listviewlearn.R;
import com.learn.listviewlearn.utility.Util; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView; public class ListViewAdapter extends BaseAdapter {
private Context context; public ListViewAdapter() {
// TODO Auto-generated constructor stub
} @Override
public int getCount() {
return Util.COUNTRYS.length;
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.list_item, null);
ItemViewCache itemViewCache = new ItemViewCache();
itemViewCache.imageView = (ImageView)convertView.findViewById(R.id.imageViewIcon);
itemViewCache.textView = (TextView)convertView.findViewById(R.id.textViewContent);
convertView.setTag(itemViewCache);
} ItemViewCache cache = (ItemViewCache) convertView.getTag(); cache.imageView.setImageResource(Util.images[position]);
cache.textView.setText(Util.COUNTRYS[position]);
return convertView;
} private static class ItemViewCache{
public TextView textView;
public ImageView imageView;
} }

Util.java

package com.learn.listviewlearn.utility;

import com.learn.listviewlearn.R;

public class Util {
public static final String[] COUNTRYS = { "中国", "美国", "俄罗斯", "英国", "法国" };
public static final int[] images = { R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher, R.drawable.ic_launcher };
}

四、为ListView添加Click事件。只需要在MainActivity中实现onListItemClick()方法

    @Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Toast.makeText(this, "你选择了" + Util.COUNTRYS[position], Toast.LENGTH_SHORT)
.show();
}

源码:HelloListView.zip

Android UI 之 ListView的更多相关文章

  1. Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)

    Android UI学习 - ListView -- :: 标签:Android UI 移动开发 ListView ListActivity 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ...

  2. Android UI组件----ListView列表控件详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  3. Android UI设计

    Android UI设计--PopupWindow显示位置设置 摘要: 当点击某个按钮并弹出PopupWindow时,PopupWindow左下角默认与按钮对齐,但是如果PopupWindow是下图的 ...

  4. Android UI组件----自定义ListView实现动态刷新

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  5. Android UI:ListView -- SimpleAdapter

    SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便. layout : <?xml version="1.0" encoding=&qu ...

  6. Android UI ListView的使用

    一.ListView的理解  1.什么ListView?   一种用来显示多个可滑动项(Item)列表的的ViewGroup 需要使用Adapter将集合数据和每一个Item所对应的布局动态适配到Li ...

  7. 【Android UI】Android ListView详解

    在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.抽空把对ListView的使用做了整理,并写了个小例子,如下图. 列表的显示需要三 ...

  8. Android开发学习之路--UI之ListView

    这里再学习写android的ListView,其实我们都使用过ListView,就像手机的联系人,就是用的ListView了.下面就实现下简单的ListView吧,首先是xml文件中添加相关的代码: ...

  9. 【Android实验】 UI设计-ListView

    目录 实验目的 实验要求 实验内容 实现效果 实验代码 实验总结 实验目的 学习使用ListView 学习使用menu 实验要求 实现一个列表,其中显示班级学号姓名,提供添加功能,如需要删去某一项,长 ...

随机推荐

  1. mediawiki 安装 部署 配置 使用学习

    学习资源: https://blog.csdn.net/gao36951/article/details/43965527 http://blog.csdn.net/hualichenxi123/ar ...

  2. 使用SafeViewFlipper避免ViewFlipper交替时Crash

    使用SafeViewFlipper避免ViewFlipper交替时Crash 柳志超博客 » Program » Andriod » 使用SafeViewFlipper避免ViewFlipper交替时 ...

  3. python 爬虫气象气象定时报 气象预警推送

    "2018-04-09 14时""长沙市""10日(明天)""多云转雷阵雨""29℃""1 ...

  4. MPI 派生数据类型 MPI_Type_create_struct(),MPI_Type_contiguous(),MPI_Type_vector(),MPI_Type_create_hvector(),MPI_Type_indexed()

    ▶ 使用 MPI 派生数据类型,减少数据在传输过程中的耗时 ● MPI_Type_create_struct() 范例代码 { ; int globalDataInt[globalSize], glo ...

  5. pandas的数据结构

    要使用pandas,需要熟悉它的两个主要的数据结构,Series和DataFrame. Series series是一种类似于以为数组的对象,它由一组数据(各种numpy的数据类型)以及一组与之相关的 ...

  6. PHP环境 PDOException PDOException: could not find driver

    PDOException PDOException: could not find driver in dbcon.php:29 修改php.ini文件中的相关内容.对于找不到php.ini证明你的p ...

  7. AES 加密算法 跨语言

    aes加密算法 delphi .java.c# .网页在线工具 4个相同 AES/ECB/PKCS5Padding 与网页在线工具加密结果相同 http://tool.chacuo.net/crypt ...

  8. Access空字符串和Null值

    什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码 ...

  9. 跟我学算法 - 读取excel文件(xlrd)

    import xlrd import numpy as np # fname 表示文件名 fname = '1白.xlsx'# 打开文件 bk = xlrd.open_workbook(fname)# ...

  10. Mysql 索引优化 - 1

    单表  范围查询 后面的索引会失效 双表  左右连接建立索引互相使用 三表   用小结果集驱动大表结果, 先优化括号里面的SQL, 保证JOIN被驱动的表上ON字段有索引 索引失效(常见原因) 全职匹 ...