Android ListView 列表视图
列表显示的三个元素
ListView : 用来显示列表的View
Adapter : 适配器 用来把数据映射到ListView 上的中介
Data: 数据 将被映射的字符串,图片或者基本组件等资源
根据列表的适配器类型 可分为三种: ArrayAdapter, SimpleAdapter ,SimpleCursorAdapter .
ArrayAdapter 最简单 ,只能显示一行字
SimpleAdapter 扩充性好,可以自定义各种效果 ,
SimpleCursorAdapter 可以认为是对数据库的简单结合,可以把数据库的内容以列表的形式显示出来.
ArrayAdapter适配器 简单实例:
package com.app.listviewtest; import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast; public class MainActivity extends Activity {
//创建ListView 对象
private ListView mListView ;
//添加数据
List<Object> data;
private List getData(){
data = new ArrayList<Object>();
data.add("Java");
data.add("android");
data.add("c");
data.add("c++");
return data;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mListView = new ListView(this);//获得组件
//设置适配器
mListView.setAdapter(new ArrayAdapter<Object>(this,android.R.layout.simple_expandable_list_item_1,getData()));
//设置布局 显示listView
setContentView(mListView); mListView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String text =data.get(position).toString();
switch (position) { case 0 :
Toast.makeText(getApplicationContext(),text+"被点击" , 0).show();
break;
case 1 :
Toast.makeText(getApplicationContext(),text+"被点击" , 0).show();
break;
case 2 :
Toast.makeText(getApplicationContext(),text+"被点击" , 0).show();
break;
case 3 :
Toast.makeText(getApplicationContext(),text+"被点击" , 0).show();
break; default :
break;
}
}
});
} @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;
} }
SimpleAdapter 的简单使用:
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" > <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <ImageView
android:id="@+id/ImageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
</LinearLayout>
Java文件:
package com.app.listviewtest; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.ListActivity;
import android.os.Bundle;
import android.view.Window;
import android.widget.SimpleAdapter; public class simpleAdapterActivity extends ListActivity {
//数据源
private List<Map<String,Object>> getData(){
List <Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String,Object> map = new HashMap<String, Object>();
map.put("ImageView1", R.drawable.ic_launcher);
map.put("TextView1", "图片一");
list.add(map);
map = new HashMap<String, Object>();
map.put("ImageView1", R.drawable.ic_launcher);
map.put("TextView1", "图片二");
list.add(map);
map = new HashMap<String, Object>();
map.put("ImageView1", R.drawable.ic_launcher);
map.put("TextView1", "图片3");
list.add(map);
map = new HashMap<String, Object>();
map.put("ImageView1", R.drawable.ic_launcher);
map.put("TextView1", "图片4");
list.add(map);
return list;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//隐藏标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
//设置 适配器 (上下文,数据,模板的资源ID,组件对应的资源,xml布局文件中组件的id)
//public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,int resource, String[] from, int[] to) {}
SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), getData(),
R.layout.simpleadapter_activity,new String[]{"ImageView1","TextView1"},
new int[] {R.id.ImageView1,R.id.TextView1});
setListAdapter(adapter);
}
}
Android ListView 列表视图的更多相关文章
- Android之怎样使用ListView列表视图
ListView 列表视图创建方法: (1)直接使用ListView 组件创建 (2)让Activity继承ListActivity实现 第一种:在XML中直接使用ListView 组件创建 在val ...
- Android ListView列表控件的简单使用
ListView 列表是我们经常会使用的控件, 如果想要自定义里面的显示的话是挺麻烦的, 需要新建XML.Class SimpleAdapter这两个文件, 较为麻烦. 如果我们只是想显示两.三行文字 ...
- Android课程---优化ListView列表视图(2)
layout_simple.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- Android课程---优化ListView列表视图
activity_ui4.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- Android课程---关于ListView列表视图的学习
activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...
- Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- android listview多视图嵌套多视图
笔记,listview视图总结 public class HomeEduMoreAdapter extends BaseAdapter { private final String TAG = &qu ...
- 第二章实例:ArrayAdapter结合ListView列表视图
package mydefault.packge; import com.example.codeview.R; import android.app.Activity; import android ...
- Qt qml listview 列表视图控件(下拉刷新、上拉分页、滚动轴)
Qt qml listview下拉刷新和上拉分页主要根据contentY来判断.但要加上顶部下拉指示器.滚动条,并封装成可简单调用的组件,着实花了我不少精力:) [先看效果] [功能] 下拉刷新 ...
随机推荐
- Java并发——线程中断学习
1. 使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返 ...
- 线程中join()的用法
Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行. public static void main(String[] args) throws Interrupted ...
- 生活沉思录 via 哲理小故事(一)
1.小托蒂的悲剧 意大利小男孩托蒂,有一只十分奇怪的眼睛,因为从生理上看,这是一只完全正常的眼睛,但却是失明的. 原来,托蒂刚出生时,这只眼睛轻度感染,曾用绷带缠了两个星期.这对常人来说几乎没有人任何 ...
- C#_Attribute特性
[AttributeUsage(AttributeTargets.All)]//指定Attribute的使用范围,比如只能在class级别使用 public class Column : Attrib ...
- 网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)
在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量.总带宽.ip统计和url统计等.虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了像每日PV,带宽,ip统计等数 ...
- Scrum Meeting 5
第五次会议 No_00:工作情况 No_01:任务说明 待完成 已完成 No_10:燃尽图 No_11:照片记录 待更新 No_100:代码/文档签入记录 No_101:出席表 ...
- 《Linux内核设计与实现》 第一二章学习笔记
<Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...
- “Linux内核分析”第五周报告
张文俊+ 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 学习总结 1.给M ...
- spring中通过JNDI、DBCP、C3P0配置数据源
JNDI配置数据源 1.首先在tomcat的server.xml中配置数据源信息,找到Context,然后在里边加入如下代码 <Context docBase="SpringDemo& ...
- Java开发异常
1.org.apache.catalina.LifecycleException 报错信息如下: 警告: Error during context [/wxqhbcloud] restart org. ...