Android ListView简单实用
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简单实用的更多相关文章
- Android FlycoDialog 简单实用的自定义Android弹窗对话框之Dialog篇
效果图镇楼 FlycoDialog是一款非常棒的弹窗对话框处理框架,今天在这里主要讲一下他的自定义弹出对话框的功能,这里以第二幅效果图为例,图片已经放在博客最下方,X号自己随便找一个东西代替吧. ...
- android Mvp简单实用
View 对应于Activity,负责View的绘制以及与用户交互Model 依然是业务逻辑和实体模型Presenter 负责完成View于Model间的交互 模拟客户端的登录操作,并实现登录成功与登 ...
- Android ProgressDialog 简单实用
ProgressDialog progressDialog; @SuppressLint("HandlerLeak") Handler handler1 = new Handler ...
- 关于Android对话框简单实用方法总结
要显示一个对话框,首先需要在xx.xml下添加一个Button按钮,并添加一个对应id. 单次点击事件对话框: button.setOnClickListener(new View.OnClickLi ...
- [置顶]
android ListView包含Checkbox滑动时状态改变
题外话: 在xamarin android的开发中基本上所有人都会遇到这个小小的坎,的确有点麻烦,当时我也折腾了好一半天,如果你能看到这篇博客,说明你和我当初也是一样的焦灼,如果你想解决掉这个小小的坎 ...
- LogCook 一个简单实用的Android日志管理工具
众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...
- Android酷炫实用的开源框架(UI框架)
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- Android酷炫实用的开源框架——UI框架(转)
转载别人整理好的文章,列出了很多炫酷的UI开源设计 原文地址:http://www.androidchina.net/1992.html 1.Side-Menu.Android分类侧滑菜单,Yalan ...
- Android酷炫实用的开源框架(UI框架) 转
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
随机推荐
- php使用p3p实现cookies跨域设置 实现单点登录,全站登录
P3P Header is present: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC ...
- Linux 安装pip
参考:为Linux 系统安装pip pip: "A tool for installing and managing Python packages.",也就是说pip是pytho ...
- iOS CAShapeLayer记录
基本知识 看看官方说明: /* The shape layer draws a cubic Bezier spline in its coordinate space. * * The spline ...
- redis 自启动
第一步: 在/etc/init.d/目录下建立一个名字为 redis 的启动脚本 cd /etc/init.d touch redis 然后在这个脚本中添加如下脚本 <注意修改自己的PIDFI ...
- LeetCode 3Sum Smaller
原题链接在这里:https://leetcode.com/problems/3sum-smaller/ 题目: Given an array of n integers nums and a targ ...
- IEnumerable和IEnumerator
概述 IEnumerable和IEnumerator接口存在的意义:用来实现迭代的功能! public interface IEnumerable { IEnumerator GetEnumerato ...
- Windows Server 2008 R2 辅域控制器如何升级成主域控制器
一.实验模拟故障问题: zhuyu公司架设了一台主域控制器和一台辅域控制器,某一天,zhuyu公司的主域控制器系统崩溃,主域控制器系统也进不去. 虽然辅域控制器可以暂时代替主域控制器的普通工作,但是特 ...
- 安装docker-compose
下载到合适的位置 curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s` ...
- 解决img标签间距问题
解决img标签间距问题 关于img标签间距问题:多个img之间有间距,包含img标签的div之间有间距. 代码如下: 1 <!doctype html> 2 <html lang=& ...
- sql 中实现往表中插入一条记录并返回当前记录的ID
写一条存储过程,实现往User中插入一条记录并返回当前UserId(自增长id) --推荐写法 if(Exists(select * from sys.objects where name=N'Usp ...