Android UI 之 ListView
一、在代码中创建(不适用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();
}
Android UI 之 ListView的更多相关文章
- Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)
Android UI学习 - ListView -- :: 标签:Android UI 移动开发 ListView ListActivity 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始 ...
- Android UI组件----ListView列表控件详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android UI设计
Android UI设计--PopupWindow显示位置设置 摘要: 当点击某个按钮并弹出PopupWindow时,PopupWindow左下角默认与按钮对齐,但是如果PopupWindow是下图的 ...
- Android UI组件----自定义ListView实现动态刷新
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- Android UI:ListView -- SimpleAdapter
SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便. layout : <?xml version="1.0" encoding=&qu ...
- Android UI ListView的使用
一.ListView的理解 1.什么ListView? 一种用来显示多个可滑动项(Item)列表的的ViewGroup 需要使用Adapter将集合数据和每一个Item所对应的布局动态适配到Li ...
- 【Android UI】Android ListView详解
在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示.抽空把对ListView的使用做了整理,并写了个小例子,如下图. 列表的显示需要三 ...
- Android开发学习之路--UI之ListView
这里再学习写android的ListView,其实我们都使用过ListView,就像手机的联系人,就是用的ListView了.下面就实现下简单的ListView吧,首先是xml文件中添加相关的代码: ...
- 【Android实验】 UI设计-ListView
目录 实验目的 实验要求 实验内容 实现效果 实验代码 实验总结 实验目的 学习使用ListView 学习使用menu 实验要求 实现一个列表,其中显示班级学号姓名,提供添加功能,如需要删去某一项,长 ...
随机推荐
- 微软正式发布Windows 1.0 回顾历代Windows版本界面
在刚过去的上月底,Windows XP过完了12岁生日,在今天我们又欢快地迎来了Windows的生日.在1985年11月20日,微软正式发布Windows 1.0,它基于的是MS-DOS系统,实际上其 ...
- 关于 javascript:void(0) 的问题.
原文地址:楚广明的博客 http://www.cnblogs.com/chu888chu888/archive/2012/01/05/2313045.html 最近看了好几个关于<a>标签 ...
- unity里面的gameobject和transform的关系
一切都是物体(gameobject),而transform是物体的一个基本属性类,包含位置,旋转,缩放,三个基本属性,两者之间可以互相转换 查找物体,建议用transform,GameObject无法 ...
- SlickEdit V21 2016 破解教程,win linux mac
最近主要工作系统转到LInux上面来了,Slickedit的安装破解也费了些事,今天将过程整理一下做个记录. 说明:SlickEdit pro V21.03 Linux 64位实测可用,MAC实测可用 ...
- Bootstrap-CL:导航栏
ylbtech-Bootstrap-CL:导航栏 1.返回顶部 1. Bootstrap 导航栏 导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏在您的应用或网站中作为导航页 ...
- Docker系列02: 容器生命周期管理 镜像&容器
A) Docker信息1. 查看docker运行状态 systemctl status docker docker.service - Docker Application Container Eng ...
- 【理论】python使用celery异步处理请求
Flask中使用celery队列处理执行时间较长的请求. 一. 安装celery pip install celery flask redis 二. celery简介 Celery是个异步分布式任务队 ...
- 很好用的log4j
- fft 远程服务器返回错误 550返回码
"远程服务器返回错误:(550) 文件不可用(例如,未找到文件,无法访问文件)"时,可能是如下原因: 1.URL路径不对,看看有没有多加空格,或者大小写问题 2.权限是否足 3.需 ...
- avalon新一代UI库发布
任何前端框架,尤其是国内的,想推广开,必须有一个UI库,光是一个核心库当光头司令是不行的.此外还有一个小圈子,供大家遇到问题时可以发问,一起完善.自从avalon嫁入"去哪儿网"后 ...