列表显示的三个元素

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. ( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法

    Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm ...

  2. hibernate 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.xxx 这类的问题

    <!-- 解决 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.intern ...

  3. 线程中join()的用法

    Thread中,join()方法的作用是调用线程等待该线程完成后,才能继续用下运行. public static void main(String[] args) throws Interrupted ...

  4. 配置Nginx反向代理WebSocket,以代理noVNC为例

    什么是Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮 ...

  5. 查看服务器系统资源(cpu,内容)利用率前几位的进程的方法

    在日常运维工作中,我们经常需要了解服务器上的系统资源的使用情况,要清楚知道一些重要进程所占的资源比例.这就需要熟练掌握下面几个命令的使用: 1)查看占用CPU最高的5个进程 # ps aux | so ...

  6. 百度之星-day1-1003-度度熊剪纸条

    度度熊剪纸条 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  7. Linux内核分析第二周:操作系统是如何工作的

    第一讲 函数调用堆栈 计算机是如何工作的? (总结)——三个法宝 1,存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 2,函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆 ...

  8. 关于QQ的NABCD模型

    关于QQ的NABCD模型 N--Need 随着电脑的普及,人们在网络上进行交流的时间越来越多,由于现有的交流工具还不是那么的完善,还不能够完全满足人们在交流时的需求.因此为了满足人们更多的需求,我们设 ...

  9. [转] Linux有问必答:如何修复“sshd error: could not load host key”

    编译自:http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html作者: GOLinux 本文地址:https://linux.cn/ ...

  10. activiti-explorer disable demo

    https://community.alfresco.com/thread/203012-activiti-explorer engine.properties # demo data propert ...