项目步骤

  1. 声明listView控件并获取显示的视图
  2. 获取显示的数据
  3. 设置显示的adapter
  4. 注冊点击事件

详细案例

实现效果:

查找的方法

public List<Map<String, Object>> getData() {
SQLiteDatabase db = dh.getWritableDatabase();
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
Cursor c = db
.rawQuery(
"select userid ,username,userage,usersalary,userphone from users",
null); while (c.moveToNext()) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", c.getInt(c.getColumnIndex("userid")));
map.put("name", c.getString(c.getColumnIndex("username")));
map.put("age", c.getInt(c.getColumnIndex("userage")));
map.put("phone", c.getString(c.getColumnIndex("userphone")));
data.add(map);
}
db.close();
return data;
}

布局文件

同BaseAdapter的布局文件activity_main.xml

ArrayAdapter实现类(主程序)

package com.example.android_sqlite;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast; import com.example.android_sqlite.dao.impl.UserDaoImpls;
import com.example.android_sqlite.database.DatabaseHelper; /**
* SimpleAdapter
*
* @author zhaoyazhi
*
*/
public class MainActivity extends Activity implements OnItemClickListener {
private ListView lv_users;// 视图层 // model层 相关的对象的声明
private DatabaseHelper dh;
private UserDaoImpls userDao; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 模型层
dh = new DatabaseHelper(this);// 创建数据库
userDao = new UserDaoImpls(dh);// 获取显示数据 model
List<Map<String, Object>> data = userDao.getData();// 查询获取数据 // 控制层 依赖于模型层
SimpleAdapter adapter = new SimpleAdapter(this, data,
R.layout.item_phone, new String[] { "name", "phone", "id",
"age" }, new int[] { R.id.tv_name, R.id.tv_phone,
R.id.tv_id, R.id.tv_age }); // 视图层 依赖于控制层
lv_users = (ListView) findViewById(R.id.lv_users);
lv_users.setAdapter(adapter); // 注冊点击事件
lv_users.setOnItemClickListener(this); } @Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long arg3) { // 获取点击我的数据
Toast.makeText(this, parent.getItemAtPosition(position) + "", 0).show(); } }

赵雅智_ListView_SimpleAdapter的更多相关文章

  1. 赵雅智_ContentProvider

    ContentProvider介绍 ContentProvider是不同应用程序之间进行交换数据的标志API 也就是说:一个应用程序通过ContentProvider暴露自己的数据操作接口,那么无论该 ...

  2. 赵雅智_Fragment生命周期

    官网帮助文档链接:  http://developer.android.com/guide/components/fragments.html 主要看两张图.和跑代码 一,Fragment的生命周 w ...

  3. 赵雅智:js知识点汇总

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhhb3lhemhpMjEyOQ==/font/5a6L5L2T/fontsize/400/fill/I0 ...

  4. 赵雅智_ListView_BaseAdapter

    Android界面中有时候须要显示略微复杂的界面时,就须要我们自己定义一个adapter,而此adapter就要继承BaseAdapter,又一次当中的方法. Android中Adapter类事实上就 ...

  5. 赵雅智_BroadcastReceiver电话监听

    AndroidManifest.xml 注冊广播接收者 加入权限 <?xml version="1.0" encoding="utf-8"?> &l ...

  6. 赵雅智_BroadcastReceiver

    BroadcastReceiver  用于接收程序(包含用户开放的程序和系统内建程序)所发出的Broadcast intent 耗电量 开机启动 窃取别人短信 窃取别人电话 开发: 创建须要启动的Br ...

  7. 赵雅智:service_startService生命周期

    案例演示 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xm ...

  8. 赵雅智_BroadcastReceiver短信监听

    AndroidManifest.xml 注冊广播接收者 加入权限 <?xml version="1.0" encoding="utf-8"?> &l ...

  9. 赵雅智_Android编码规范

    凝视 导入mycodetemplates.xml统一凝视样式 须要加凝视的地方 类凝视(必加) 方法凝视(必加) 块凝视主要是数据结构和算法的描写叙述(必加) 类成员变量和常量凝视(选择性加入) 单行 ...

随机推荐

  1. vs code golang代码自动补全

    “go.useCodeSnippetsOnFunctionSuggest”: true 文件-->首选项--->设置--->用户设置 添加下行:然后就可以自动补全了,包括() “go ...

  2. 如何对HTMLTestRunner 进行输出print 进行修改

    在 HTMLTestRunner 模块中,在运行代码后,在输入的html页面值出现了特别简单的一个页面,那么现在如何将HTML页面中输出的更多print 在 HTMLTestRunner.py文件中查 ...

  3. HTML 打印 换页

    打印 HTML 无法强制换页其实是一件很令人困扰的事,要达到这个功能其实可以透过 CSS 的 Pagebreak 来处理. 强制分页有大概只有二种用的到: { page-break-after: al ...

  4. TCP/IP详解(一)

    SYN中的MSS选项是告诉对端,本端在本地连接的每个TCP分节中愿意接收的最大数据量.发送端TCP使用接收端的MSS值作为发送分节的最大大小. TCP半关闭使用的情况较少,可用于通知对端本端数据已输入 ...

  5. JQuery 兼容所有浏览器的复制到剪切板功能

    灵机一动想的点子,应该不难理解 <textarea onmousedown='selectAll(this);'>11111</textarea> function selec ...

  6. C# 多线程系列(二)

    传递数据给一个线程 通过函数或lambda表达式包一层进行传递. static void Main(string[] args) { Thread thread = new Thread(() =&g ...

  7. Java中final、finally、finalize的区别与用法

    1.简单区别:final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承.finally是异常处理语句结构的一部分,表示总是执行.finalize是Object类的一个方法,在垃 ...

  8. Java基础12一IO流

    1.IO流的原理 利用数据通道实现程序和数据源之间数据的的读写操作.  2.IO流分类 输入流.输出流.字节流.字符流.节点流.过滤流  3.InputStream 字节输入流 实现类FileInpu ...

  9. 高通处理器手机 解锁Bootloader 教程

    目前很多手机都需要解锁Bootloader之后才能进行刷机操作   本篇教程教你如何傻瓜式解锁Bootloader 首先需要在设置-关于手机 找到版本号(个别手机可能是内核版本号,甚至其他) 然后 快 ...

  10. ie8及其以下版本兼容性问题之placeholder实现

    1. 普通浏览器下修改placeholder颜色 因为每个浏览器的CSS选择器都有所差异,所以需要针对每个浏览器做单独的设定. 示例: input::-webkit-input-placeholder ...