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>
运行单元测试结果如下:
如上第一阶段收工!
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories