Android学习之ListView使用基础
1、ListView的简单用法
1.1 布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ListView>
</LinearLayout>
1.2 代码
public class MainActivity extends Activity {
private String[] data={"One","Two","Three","Four","Five","Six","Seven","Eight","Nine"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,data);
ListView listView=(ListView)findViewById(R.id.listView1);
listView.setAdapter(adapter);
//处理点击事件
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String string=data[arg2];
Toast.makeText(MainActivity.this, string, Toast.LENGTH_SHORT).show();
}
});
}
}
2、定制ListView的界面
2.1 新建MyData类,作为ListView适配器的适配类型
public class MyData{
private String dataString;
private int imageId;
public MyData(String dataString,int imageId) {
// TODO Auto-generated constructor stub
this.dataString=dataString;
this.imageId=imageId;
}
public String getDataString() {
return dataString;
}
public int getImageId() {
return imageId;
}
}
2.2 为ListView子项指定自定义布局mydata_item.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" >
<ImageView
android:id="@+id/myDataImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ImageView>
<TextView
android:id="@+id/myDataString"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:gravity="center" />
</LinearLayout>
2.3 自定义适配器类
public class MyDataAdapter extends ArrayAdapter<MyData>{
private int resourceId;
public MyDataAdapter(Context context,int textViewResourceId,List<MyData> objects){
super(context, textViewResourceId,objects);
resourceId=textViewResourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
MyData data=getItem(position);
View view;
if(convertView==null){
view=LayoutInflater.from(getContext()).inflate(resourceId, null);
}
else {
view=convertView;
}
ImageView dataImageView=(ImageView)view.findViewById(R.id.myDataImage);
TextView dataStringTextView=(TextView)view.findViewById(R.id.myDataString);
dataImageView.setImageResource(data.getImageId());
dataStringTextView.setText(data.getDataString());
return view;
}
}
2.4 修改MainActivity代码
public class MainActivity extends Activity {
private List<MyData> dataList=new ArrayList<MyData>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
MyDataAdapter adapter=new MyDataAdapter(MainActivity.this, R.layout.mydata_item, dataList);
ListView listView=(ListView)findViewById(R.id.listView1);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
MyData data=dataList.get(arg2);
Toast.makeText(MainActivity.this, data.getDataString(), Toast.LENGTH_SHORT).show();
}
});
}
private void initData() {
// TODO Auto-generated method stub
MyData one=new MyData("one", R.drawable.one);
MyData two=new MyData("two", R.drawable.two);
MyData three=new MyData("three", R.drawable.three);
MyData four=new MyData("four", R.drawable.four);
MyData five=new MyData("five", R.drawable.five);
MyData six=new MyData("six", R.drawable.six);
MyData seven=new MyData("seven", R.drawable.seven);
MyData eight=new MyData("eight", R.drawable.eight);
MyData nine=new MyData("nine", R.drawable.nine);
dataList.add(one);
dataList.add(two);
dataList.add(three);
dataList.add(four);
dataList.add(five);
dataList.add(six);
dataList.add(seven);
dataList.add(eight);
dataList.add(nine);
}
@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;
}
}
Android学习之ListView使用基础的更多相关文章
- Android学习随笔--ListView的分页功能
第一次写博客,可能格式,排版什么的会非常不美观,不过我主要是为了记录自己的Android学习之路,为了以后能有些东西回顾.既然是为了学习,那我肯定会吸收各位大大们的知道经验,有不足的地方请指出. 通过 ...
- Android学习笔记-listview实现方式之BaseAdapter
listview是Android开发中最为常用的组件,这里我们就学习一下用BaseAdapter的方式实现listview, 主布局activity_main.xml是这样的: <LinearL ...
- Android学习笔记——ListView
该工程的功能是实现在一个activity中显示一个列表 以下代码是MainActivity.java中的代码 package com.example.listview; import java.uti ...
- Android学习之——ListView
背景知识 ListView在Android应用中使用非常广泛,手机上必备的微博.网易新闻等,都使用了ListView.
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
- Android学习之listview的下拉刷新、上拉载入
本例是在上例的基础上完成的.本例实现的listview上拉载入.下拉刷新功能,是在开源网站上别人写好的listview,主要是对listview的控件进行重写,添加了footer和header. 1. ...
- Android学习之——ListView下拉刷新
背景知识 ListView使用非常广泛,对于使用ListView的应用来说,下拉刷新是必不可少要实现的功能. 我们常用的微博.网易新闻,搜狐新闻都使用了这一功能,如下图所示. 微博 搜狐新闻 ...
- [Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法
转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类 ...
- android学习之ListView
移通152余继彪 该组件用于显示列表的view 包含了三个关键元素 listView 适配器 以及数据,适配器主要是用于将数据映射到listview,适配器数据主要是有hasmap 配合list对每 ...
随机推荐
- 运行jar乱码问题
请使用 1.java -jar -Dfile.encoding=utf-8 dapao.jar 2.请使用URLDecode,URLEncode 3.请使用unicode编码格式 bat运行当前目录 ...
- ASP.NET MVC做的微信WEBAPP中调用微信JSSDK扫一扫
今天做一个项目,是在微信上用的,微信WEB APP,里面用到了调用手机摄像头扫一扫二维码的功能,记得以前某个项目里写有的,但是找不到之前那个项目源码了,想复制粘贴也复制不了了,只好对着微信的那个开发文 ...
- Angular 4.0从入门到实战
AngularJS 优点 模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令: 是一个比较完善的前端MVC框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能: ...
- zabbix server 与数据库不在同一台服务器上面
16312:20170527:095215.225 database is down: reconnecting in 10 seconds 16312:20170527:095225.225 [Z3 ...
- [SQL Server 2014] SQL Server 2014新特性探秘
SQL Server 2014新特性探秘(1)-内存数据库 简介 SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQ ...
- Mysql 管理和备份
mysqladmin用于管理MySQL服务器的客户端,mysqladmin执行管理操作的客户程序,可以用它来创建或删除数据库,重载授权表,将表刷新到硬盘上,以及重新打开日志文件,检索版本.进程,以及服 ...
- 每日英语:The Risks of Big Data for Companies
Big data. It's the latest IT buzzword, and it isn't hard to see why. The ability to parse more infor ...
- Lua语法基础(2)--基本语法、函数
上一篇编辑编辑着,发现,缩进出了问题.作为一个不是强迫症的人,实在是忍受不了同一级内容不同缩进方式的槽点,于是重开一篇吧.(万幸,这样的文章也只有我自己看.) 第四 基本语法 赋值语句,Lua可以对多 ...
- TensorFlow学习笔记(8)--网络模型的保存和读取【转】
转自:http://blog.csdn.net/lwplwf/article/details/62419087 之前的笔记里实现了softmax回归分类.简单的含有一个隐层的神经网络.卷积神经网络等等 ...
- 如何去掉文件里的^M
起因 csv文件用Python处理之后,有的地方跟着一个^M,特别好奇,以为是处理过程中产生的,后来想了想不是. 解决办法 尝试使用replace替换掉,但是失败了 查询原因,谷歌一番,发现是Wind ...