摘要:
一、通讯录应用介绍通讯录应用是Android自带的应用程序,我们看到此应用的时候,可能只认为这是一个应用,用数据库存储数据,但是实际上不是这样的。通讯录是ContentProvider的应用,通讯录由两部分组成:(1)com.android.providers.contacts的ContentProvider:真正存储数据的ContentProvider(2)com.android.contacts:运用ContentResolver获取数据的图形用户界面;二、获取ContactProvider的源代码Android源代码: http://my.oschina.net/zhanglubing/ 阅读全文
摘要:
给定一个字符集合,给定随机生成的字符串的长度,即可随机生成字符串;比如{'a','.....,'z'}及长度5,则随机生成一个长度为5的字符串;package xiazdong.util;import java.util.Random;/*根据给定的char集合,生成随机的字符串*/public class StringWidthWeightRandom { private Random widthRandom = new Random(); private int length; private char[] chars; private Random 阅读全文
摘要:
此类需要使用之前讲到的IntegerWeightRandom类;示例:给定"a"赋予权重100,"b"的权重为50,则getNextString()时取"a"的概率要更大;package org.xiazdong.util; /*给定字符串集合,设定每个字符串的权重,返回随机字符串*/
public class StringRandom { private String[] datas; private IntegerWeightRandom random = new IntegerWeightRandom(); public Str 阅读全文
摘要:
一般如果要插入100万条数据,则会写如下代码:package org.xiazdong.test;import junit.framework.TestCase;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;import org.xiazdong.Person;public class PersonTest extends T 阅读全文
摘要:
辅助类提供了3个方法:(1)addWeightNumber(int weight,int num):为某个num赋予weight权重,此权重代表此数字在随机获取时的获得概率;权重大, 则获得的概率就大,权重小,则获得的概率就小。(2)addWeightNumRange(int weight,int numfrom,int numto,int ... numExcludes);同时为连续多个数字赋予权重,最后这个参数可以排除例外数字,比如addWeightNumRange(5,1,10,5); 表示为1~10(除去5)的数字赋予权重5;(3)getNextInt();在你赋予权重之后,此方法会随 阅读全文
摘要:
一、监听ContentProvider主要步骤1.在ContentProvider类的insert\update\delete方法加入this.getContext().getContentResolver().notifyChange(URI,null);其中URI表示监听的URInull表示发送消息给任何人;2.在访问者的类中调用如下方法:context.getContentResolver().registerContentObserver(uri,true,new ContentObserver(new Handler()));3.创建内部类继承ContentObserver并重写下面 阅读全文
摘要:
一、ContentProvider介绍ContentProvider翻译为“内容提供者”;定义:指该应用包含一些方法,供外界访问,其他应用程序可以调用该方法,比如如果应用A创建了一个数据库“test.db”,默认是私有的,即其他应用程序不能对其进行操作,但是如果应用A使用了ContentProvider,则其他应用程序可以访问该数据库;用途:某个应用对外共享数据;注意点:和Activity一样,都是Android 的Component之一,如果要创建,则需要在AndroidManifest.xml中设置;好处:提供了统一的insert,update,delete,query方法,操作任何数据; 阅读全文
摘要:
任务:从数据库中获得Person对象,通过继承BaseAdapter类,显示ListView,如下所示:(此处我们数据库操作的代码略,因为主要讲解的是ListView)PersonAdapter.javapackage org.xiazdong.db.domain; import java.util.List; import org.xiazdong.db.R; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.... 阅读全文
摘要:
一般ListView都是用来显示列表的,一般列表的数据都是来自数据库的,因此我们这里假设前面已经实现了一个DBService类,里面存在pageCursorQuery(int offset,int length);比如dbservice.pageCursorQuery(3,5);表示跳过3个记录,插入5条记录,返回Cursor;pageCursorQuery实现代码如下,需要注意的是,查询语句的主键必须要重命名为“_id”,不然会报错。public Cursor pageCursorQuery(int low,int high){ db = helper.getWritableDatabas. 阅读全文
摘要:
ListView是类似于将一个界面分为一行一行,如下图:注意:listView.getItemAtPosition(int pos)内部调用了adapter.getItem(int position)方法,而每种适配器返回的类型都是不一样的:当SimpleAdapter返回Map<String,Object>SimpleCursorAdapter返回Cursor;继承BaseAdapter返回自己实现的类型;一般ListView都是用来显示列表的,一般列表的数据都是来自数据库的,因此我们这里假设前面已经实现了一个DBService类,里面存在pageQuery(int offset 阅读全文