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,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
随机推荐
- Kafka - protocol
http://kafka.apache.org/protocol 具体的协议看原文, Preliminaries Network Kafka uses a binary protocol ov ...
- 控制Wordpress对搜索引擎的可见性
网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,这些通过robots.txt体现. wordpress本身没有robots.txt,但是用根目录访问/robots.txt,如果 ...
- ios之json,xml解析
JSON解析步骤: 1.获取json文件路径 NSString*path = [[NSBundle mainBundle] pathForResource:@"Teacher"of ...
- 在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker
Ubuntu Trusty带来的是3.13.0 Linux kernel ,需要准备所有ubuntu库的某些条件,docker安装包被称之为docker.io.(注:Ubuntu (和Debian)包 ...
- SQL Server ->> EXECUTE AS LOGIN/USER和Revert表达式
EXECUTE AS LOGIN/USER和Revert表达式都是从SQL Server 2005就有.Revert的作用是用于切换当前过程的执行上下文返回上一个EXECUTE AS 语句发生之前的安 ...
- 【转】Ubuntu网卡配置
一.网卡地址配置Ubuntu的网络配置文件是:/etc/network/interfaces1.以DHCP 方式配置网卡 auto eth0 iface eth0 inet dhcp用sudo ...
- Array基本操作
// defined array object val arr0= ) val arr1= Array(") println(arr1()) arr1()="Hello Spark ...
- SpringMvc自定义拦截器
SpringMvc也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义拦截器必须实现HandlerInterceptor接口 -preHandle():这个方法在业务处理器 ...
- AJAX-----09iframe模拟ajax文件上传效果原理1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Windows10 如何删掉内置的 skype ?
打开开始菜单,输入“PowerShell”并回车: 运行“Get-AppxPackage -User username”命令( username 请替换成当前实际用户名),此时会显示所有已安装的应用程 ...