列表显示的三个元素

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 列表视图的更多相关文章

  1. Android之怎样使用ListView列表视图

    ListView 列表视图创建方法: (1)直接使用ListView 组件创建 (2)让Activity继承ListActivity实现 第一种:在XML中直接使用ListView 组件创建 在val ...

  2. Android ListView列表控件的简单使用

    ListView 列表是我们经常会使用的控件, 如果想要自定义里面的显示的话是挺麻烦的, 需要新建XML.Class SimpleAdapter这两个文件, 较为麻烦. 如果我们只是想显示两.三行文字 ...

  3. Android课程---优化ListView列表视图(2)

    layout_simple.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...

  4. Android课程---优化ListView列表视图

    activity_ui4.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...

  5. Android课程---关于ListView列表视图的学习

    activity_ui3.xml <?xml version="1.0" encoding="utf-8"?> <ListView xmlns ...

  6. Android中通过数组资源文件xml与适配器两种方式给ListView列表视图设置数据源

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  7. android listview多视图嵌套多视图

    笔记,listview视图总结 public class HomeEduMoreAdapter extends BaseAdapter { private final String TAG = &qu ...

  8. 第二章实例:ArrayAdapter结合ListView列表视图

    package mydefault.packge; import com.example.codeview.R; import android.app.Activity; import android ...

  9. Qt qml listview 列表视图控件(下拉刷新、上拉分页、滚动轴)

    Qt qml listview下拉刷新和上拉分页主要根据contentY来判断.但要加上顶部下拉指示器.滚动条,并封装成可简单调用的组件,着实花了我不少精力:) [先看效果]    [功能] 下拉刷新 ...

随机推荐

  1. 51Nod 1299 监狱逃离

    这其实是一道树形DP的神仙题. 然后开始推推推,1 hour later样例都过不了 然后仔细一看题目,貌似像一个最小割模型,然后5min想了想建图: 首先拆点,将每个点拆成进和出两个,然后连边,边权 ...

  2. JDK的一个关于stack的小bug

    在一个项目中,使用了一个java.util.Stack,总所周知,栈是先入后出的,那么遍历其中元素的时候,也应该按照这个顺序遍历才对,但是实际情况确不是,以下是测试代码. Stack stack = ...

  3. Python零基础入门(安装步骤,验证方式, 简单操作)

    本篇文章适合新人小白初步了解Python,涵盖Python的介绍.安装以及简单的基础操作.  1.Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.它的设 ...

  4. @Scheduled 定时

    此文章记录在spring boot项目中的使用 1,在项目的启动类中加注解@EnableScheduling,表示此项目可以进行定时 @SpringBootApplication @EnableSch ...

  5. Beta项目展示

    Team C# 一.团队成员简介 杜正远,队长. 博客地址:http://www.cnblogs.com/kevindu/ 崔强,全职PM. 博客地址:http://www.cnblogs.com/m ...

  6. The Contest CodeForces - 813A (思维)

    Pasha is participating in a contest on one well-known website. This time he wants to win the contest ...

  7. Orchard Core学习一

    Orchard Core学习一 Orchard Core是ASP.NET Core上Orchard CMS的重新开发. Orchard Core由两个不同的目标组成: Orchard核心框架:用于在A ...

  8. 『编程题全队』"Gugua"事务管理系统项目宣传文案

    一.项目简介 1.项目简介 Gugua是为了解决有事务管理需要的人群的痛苦, 他们需要 一个便利和高效的个人和团体事务管理平台,但是现有的方案并没有很好地解决这些需求,我们有独特的办法是提供跨平台的软 ...

  9. maven私服 Nexus2.x.x私服安装配置

    一.Nexus的下载和安装 1.下载nexus ,下载地址:https://www.sonatype.com/download-oss-sonatype  2.打开目录nexus-2.x.x-xx-b ...

  10. shell脚本--内容查找之grep命令

    grep命令可以检索文件中包含关键字(可以使用正则)的行,默认区分大小写. ubuntu@ubuntu:~/test$ cat test.txt this is linux this is Linux ...