列表显示的三个元素

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. React-JSX简介

    JSX 本身其实也是一种表达式 在编译之后呢,JSX 其实会被转化为普通的 JavaScript 对象.这也就意味着,你其实可以在 if 或者 for 语句里使用 JSX,将它赋值给变量,当作参数传入 ...

  2. 转:判断js中的数据类型的几种方法

    判断js中的数据类型有一下几种方法:typeof.instanceof. constructor. prototype. $.type()/jquery.type(),接下来主要比较一下这几种方法的异 ...

  3. 算法相关——Java排序算法之快速排序(三)

    0. 前言 本系列文章将介绍一些常用的排序算法.排序是一个非常常见的应用场景,也是开发岗位面试必问的一道面试题,有人说,如果一个企业招聘开发人员的题目中没有排序算法题,那说明这个企业不是一个" ...

  4. BugkuCTF 你必须让他停下

    前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...

  5. win10系统安装web3js的正确方法(2)

    信渤网络科技是一家基于互联网信息服务的区块链技术公司,专业提供区块链技术培训,智能合约定制开发,文字图片数据存证上链等服务,为相关企业提供区块链应用落地项目的技术方案 崇尚代码即法律,做一个智能合约开 ...

  6. box-flex 弹性合布局+WebApp布局自适应

    问:随着屏幕改变,中间自适应 两边固定宽度? 参考: nec 布局 四种方法--博客园 问:左侧导航栏隐藏后,右侧内容宽度自动(响应式)变大? <!DOCTYPE html> <ht ...

  7. Scrum Meeting 8

                第八次会议 No_00:工作情况 No_01:任务说明 待完成 已完成 No_10:燃尽图 No_11:照片记录 待更新 No_100:代码/文档签入记录 No_101:出席表 ...

  8. 项目目前展示图 有几个Activity页还没连上不能一次展示出来

  9. 第三个Sprint冲刺第四天(燃尽图)

  10. CMake--Set用法

    CMake中的set用于给一般变量,缓存变量,环境变量赋值. cmake官方文档set set(<variable> <value> [[CACHE <type> ...