您的位置:首页 > 移动开发 > 微信开发

Android小程序——乐学成语实现(二)

2016-06-06 19:59 435 查看

一、Animal表存在一个对应的分类,为了方便以后的操作,我们在entity包下新建一个Animal类,代码如下:

<span style="font-size:18px;">public class Anmial {
private int id;
private String name;//成语名称
private String pronounce;//成语发音
private String explain;//成语解释
private String antonym;//反义词
private String homoionym;//同义词
private String derivation;//源自
private String examples;//例子
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPronounce() {
return pronounce;
}
public void setPronounce(String pronounce) {
this.pronounce = pronounce;
}
public String getExplain() {
return explain;
}
public void setExplain(String explain) {
this.explain = explain;
}
public String getAntonym() {
return antonym;
}
public void setAntonym(String antonym) {
this.antonym = antonym;
}
public String getHomoionym() {
return homoionym;
}
public void setHomoionym(String homoionym) {
this.homoionym = homoionym;
}
public String getDerivation() {
return derivation;
}
public void setDerivation(String derivation) {
this.derivation = derivation;
}
public String getExamples() {
return examples;
}
public void setExamples(String examples) {
this.examples = examples;
}
}</span>

接下来我们还需要创建一个AnimalDao类,这个类将会把一些常用的数据库操作封装起来,方便以后操作,代码如下:

<span style="font-size:18px;">public class AnimalDao {

private static AnimalDao animalDao;
private SQLiteDatabase db;

/**
* 将构建方法私有化
*/
private AnimalDao(Context context) {
DBOpenHelper dbHelper = new DBOpenHelper(context);
db = dbHelper.openDatabase();
}

/**
* 获取AnimalDao的实例
*/
public synchronized static AnimalDao getInstance(Context context) {
if (animalDao == null) {
animalDao = new AnimalDao(context);
}
return animalDao;
}

/**
* 从数据库读取所有的动物类成语
*/
public List<Animal> getAllAnimals() {
List<Animal> list = new ArrayList<Animal>();
Cursor cursor = db.query("animal", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
Animal animal = new Animal();
animal.setId(cursor.getInt(cursor.getColumnIndex("_id")));
animal.setName(cursor.getString(cursor.getColumnIndex("name")));
animal.setPronounce(cursor.getString(cursor
.getColumnIndex("pronounce")));
animal.setAntonym(cursor.getString(cursor
.getColumnIndex("antonym")));
animal.setHomoionym(cursor.getString(cursor
.getColumnIndex("homoionym")));
animal.setDerivation(cursor.getString(cursor
.getColumnIndex("derivation")));
animal.setExplain(cursor.getString(cursor
.getColumnIndex("examples")));
list.add(animal);
} while (cursor.moveToNext());
}
return list;
}
}</span>

可以看到,AnimalDao是一个单例类,我们将它的构造方法私有化,并提供了一个getInstance()方法来获取AnimalDao的实例,这样就可以保证全局范围内只会有一个AnimalDao的实例,接下来我们在AnimalDao中提供了一个方法getAllAnimals(),该方法用来获取所有的动物类成语,编写单元测试类AnimalDaoTest继承AndroidTestCase,代码如下:

<span style="font-size:18px;">public class AnimalDaoTest extends AndroidTestCase{
public void testGetAllAnimals(){
AnimalDao animalDao = AnimalDao.getInstance(getContext());
List<Animal> animals = animalDao.getAllAnimals();
System.out.println(animals.size());
for(Animal animal:animals){
System.out.println(animal.getName());
}
}
}</span>

运行单元测试结果如下:




如上第一阶段收工!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android