layout创建:

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.example.person.MainActivity"
> <LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/name"
/> <TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/sex"
/> <TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="@string/age"
/>
</LinearLayout> <ListView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/listView"
/> </LinearLayout>

item.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" > <TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/name"
/> <TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/sex"
/> <TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:id="@+id/age"
/> </LinearLayout>

  

UserDao  插入数据, 分页查询数据

/**
*
*/
package com.example.person.dao; import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.nfc.Tag;
import android.os.Build.VERSION;
import android.util.Log; /**
*
* @author baoxing.gbx
* @version $Id: DBopenHelper.java, v 0.1 2015年7月11日 下午9:39:03 baoxing.gbx Exp $
*/
public class DBopenHelper extends SQLiteOpenHelper{ /** 数据库名称 */
private static final String DB_NAME = "test.db"; private static final int VERSION = 1; private static final String Tag = "DBopenHelper"; // 初始化数据库开启装置
public DBopenHelper(Context context) {
super(context, DB_NAME, null, VERSION);
// TODO Auto-generated constructor stub
} //
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(Tag, "onCreate 被调用");
db.execSQL("create table user (id integer primary key autoincrement, name varchar(20),sex varchar(20), age integer )");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i(Tag, "onUpgrade 被调用");
db.execSQL("DROP TABLE IF EXISTS person");
onCreate(db);
} } /**
*
*/
package com.example.person.dao; import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.database.Cursor;
import com.example.person.vo.User; /**
*
* @author baoxing.gbx
* @version $Id: UserDao.java, v 0.1 2015年7月11日 下午10:44:09 baoxing.gbx Exp $
*/
public class UserDao {
String tableName = "user";
DBopenHelper dbopenHelper; public UserDao (DBopenHelper dBopenHelper) {
this.dbopenHelper = dBopenHelper;
} public long save(User user) {
ContentValues values = new ContentValues();
values.put("name", user.getName());
values.put("sex", user.getSex());
values.put("age", user.getAge());
long result = dbopenHelper.getWritableDatabase().insert(tableName, null, values);
return result;
} public List<User> queryPage(int startRow, int pageSize) {
String limit = startRow + "," + pageSize;
Cursor cursor = dbopenHelper.getReadableDatabase().query(tableName, null, null, null, null, null, null, limit);
List<User> users = new ArrayList<User>();
while (cursor.moveToNext()) {
User user = new User();
user.setId(cursor.getInt(cursor.getColumnIndex("id")));
user.setName(cursor.getString(cursor.getColumnIndex("name")));
user.setSex(cursor.getString(cursor.getColumnIndex("sex")));
user.setAge( cursor.getInt(cursor.getColumnIndex("age")));
users.add(user);
}
return users;
} }

  

MainActivity显示数据

package com.example.person;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter; import com.example.person.dao.DBopenHelper;
import com.example.person.dao.UserDao;
import com.example.person.vo.User; public class MainActivity extends ActionBarActivity { private ListView listView; private UserDao userDao ; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView);
userDao = new UserDao(new DBopenHelper(this)); // 简单适配器
// show1(); // 简单适配器
show2(); } /**
* 自定义是配置显示
*/
private void show2() {
List<User> users = userDao.queryPage(0, 20); listView.setAdapter(new MyAdapter(this, users, R.layout.item));
} /**
* 普通是配置适配ListView
*/
private void show1() {
List<User> users = userDao.queryPage(0, 20);
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
for (User user : users) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", user.getName());
map.put("sex", user.getSex());
map.put("age", user.getAge());
data.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.item,
new String[] {"name", "sex", "age"}, new int[] {R.id.name, R.id.sex, R.id.age}); listView.setAdapter(adapter);
}
}

  

自定义适配器

package com.example.person;

import java.util.List;

import com.example.person.vo.User;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView; public class MyAdapter extends BaseAdapter{ private List<User> users;
private int resource; private LayoutInflater inflater; public MyAdapter(Context context,List<User> users, int resource) {
super();
this.users = users;
this.resource = resource;
this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
} public MyAdapter() {
super();
// TODO Auto-generated constructor stub
} @Override
public int getCount() {
return users.size();
} @Override
public Object getItem(int position) {
return users.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
if (null == convertView) {
convertView = inflater.inflate(resource, null);
}
( (TextView)convertView.findViewById(R.id.name)).setText(users.get(position).getName());
( (TextView)convertView.findViewById(R.id.sex)).setText(users.get(position).getSex());
( (TextView)convertView.findViewById(R.id.age)).setText(users.get(position).getAge()+"");
return convertView;
} }

  

Android ListView简单实用的更多相关文章

  1. Android FlycoDialog 简单实用的自定义Android弹窗对话框之Dialog篇

    效果图镇楼   FlycoDialog是一款非常棒的弹窗对话框处理框架,今天在这里主要讲一下他的自定义弹出对话框的功能,这里以第二幅效果图为例,图片已经放在博客最下方,X号自己随便找一个东西代替吧.  ...

  2. android Mvp简单实用

    View 对应于Activity,负责View的绘制以及与用户交互Model 依然是业务逻辑和实体模型Presenter 负责完成View于Model间的交互 模拟客户端的登录操作,并实现登录成功与登 ...

  3. Android ProgressDialog 简单实用

    ProgressDialog progressDialog; @SuppressLint("HandlerLeak") Handler handler1 = new Handler ...

  4. 关于Android对话框简单实用方法总结

    要显示一个对话框,首先需要在xx.xml下添加一个Button按钮,并添加一个对应id. 单次点击事件对话框: button.setOnClickListener(new View.OnClickLi ...

  5. [置顶] android ListView包含Checkbox滑动时状态改变

    题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...

  6. LogCook 一个简单实用的Android日志管理工具

    众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...

  7. Android酷炫实用的开源框架(UI框架)

    Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...

  8. Android酷炫实用的开源框架——UI框架(转)

    转载别人整理好的文章,列出了很多炫酷的UI开源设计 原文地址:http://www.androidchina.net/1992.html 1.Side-Menu.Android分类侧滑菜单,Yalan ...

  9. Android酷炫实用的开源框架(UI框架) 转

    Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...

随机推荐

  1. VS2012编译VS2010版本的过程报错解决

    C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32C:\Program Files\MSBuild\Microsoft C:\Pro ...

  2. Mac更换Sublime Text程序图标

    更换方法: 下载.icns格式一个图标.http://www.easyicon.net/language.en/iconsearch/sublime/ 终端执行:open /Applications/ ...

  3. cocos2dx 3.x(定时器或延时动作自动调用button的点击响应事件)实现自动内测

    // // ATTGamePoker.hpp // MalaGame // // Created by work on 2016/11/09. // // #ifndef ATTGamePoker_h ...

  4. 计划将项目中使用entity framework的要点记录到改栏目下

    ef监控sql执行性能日志.http://www.cnblogs.com/CreateMyself/p/5277681.html http://123.122.205.38/cn_sql_server ...

  5. java虚拟机内部介绍

    一.介绍 java 的内存管理和垃圾回收在某种程度是同一个问题来着.对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代码,不容易出现 ...

  6. Linux安装vim失败的解决办法

    最近想了解一下linux编程,于是linux系统下输入vim,发现竟然没有安装.好吧,那就安装吧.命令: sudo apt-get install vim 百度百科:apt-get是一条linux命令 ...

  7. Leetcode: Partition Equal Subset Sum

    Given a non-empty array containing only positive integers, find if the array can be partitioned into ...

  8. csuoj 1503: 点到圆弧的距离

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 1503: 点到圆弧的距离 时间限制: 1 Sec  内存限制: 128 MB  Speci ...

  9. jquery mobile界面数据刷新

    JQM里面当我们更新了某些页面标签(如: listview, radiobuttons, checkboxes, select menus)里的数据时,必须做refresh操作. 为什么必须做refr ...

  10. WITH AS的含义

    一.WITH AS的含义WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让S ...