HappyIdiom之六(1)实现动物类列表的显示

来源:互联网 发布:龙神契约升阶数据 编辑:程序博客网 时间:2024/05/18 03:55

目标:实现动物类列表的显示

Step1:分析可知不同的类别具有共同的属性,可以抽出一个继承关系,父类是Idiom。

实现:在entity包下建立Idiom类

public class Idiom {private Integer id;private String idiom;// 成语private String spell;// 拼音private String explain;// 解释private String antonym;// 反义词private String homoionym;// 同义词private String derivation;// 来历private String examples;// 举例private String english;// 成语的英语解释public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getIdiom() {return idiom;}public void setIdiom(String idiom) {this.idiom = idiom;}public String getSpell() {return spell;}public void setSpell(String spell) {this.spell = spell;}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;}public String getEnglish() {return english;}public void setEnglish(String english) {this.english = english;}public Idiom(String idiom, String spell, String explain,String antonym, String homoionym, String derivation,String examples, String english) {super();this.idiom = idiom;this.spell = spell;this.explain = explain;this.antonym = antonym;this.homoionym = homoionym;this.derivation = derivation;this.examples = examples;this.english = english;}@Overridepublic String toString() {return "Idiom [id=" + id + ", idiom=" + idiom + ", spell=" + spell+ ", explain=" + explain + ", antonym=" + antonym+ ", homoionym=" + homoionym + ", derivation=" + derivation+ ", examples=" + examples + ", english=" + english + "]";}}


 在entity包下建立Animal类

public class Animal extends Idiom {public Animal(String idiom, String spell, String explain,String antonym, String homoionym, String derivation,String examples, String english) {super(idiom, spell, explain, antonym, homoionym, derivation, examples,english);}}


Step2:在dao包下建立IdiomDao类和AnimalDao类

public abstract class IdiomDao {private SQLiteDatabase sqLiteDatabase;public IdiomDao(Context context){DBHelper dbHelper=new DBHelper(context);sqLiteDatabase=dbHelper.openDatabase();}public abstract List<Idiom> getIdioms();public SQLiteDatabase getSqLiteDatabase() {return sqLiteDatabase;}}


 

public class AnimalDao extends IdiomDao {public AnimalDao(Context context) {super(context);}@Overridepublic List<Idiom> getIdioms() {SQLiteDatabase sqLiteDatabase=getSqLiteDatabase();List<Idiom> idioms=new ArrayList<Idiom>();Cursor cursor=sqLiteDatabase.rawQuery("select * from animal", null);while(cursor.moveToNext()){String an_idiom = cursor.getString(cursor.getColumnIndex("an_idiom"));String an_explain = cursor.getString(cursor.getColumnIndex("an_explain"));String an_spell = cursor.getString(cursor.getColumnIndex("an_spell"));String an_antonym = cursor.getString(cursor.getColumnIndex("an_antonym"));String an_homoionym = cursor.getString(cursor.getColumnIndex("an_homoionym"));String an_derivation = cursor.getString(cursor.getColumnIndex("an_derivation"));String an_examples = cursor.getString(cursor.getColumnIndex("an_examples"));String an_english = cursor.getString(cursor.getColumnIndex("an_english"));Idiom idiom = new Animal(an_idiom,an_spell,an_explain,an_antonym,an_homoionym,an_derivation,an_examples,an_english);idioms.add(idiom);}cursor.close();sqLiteDatabase.close();return idioms;}}


Step3:进行单元测试,确保可以从数据库中将动物类成语查询出来

public class IdiomDaoTest extends AndroidTestCase {    public void testCreateDB(){    DBHelper dbHelper=new DBHelper(getContext());    dbHelper.openDatabase();    }    public void testGetIdioms(){    IdiomDao idiomDao=new AnimalDao(getContext());    List<Idiom> idioms=idiomDao.getIdioms();    for(Idiom idiom:idioms){    System.out.println(idiom);    }    }    }


Step4:定义Study_AnimalActivity类及其activity_study_animal.xml文件,每一列表项的布局study_animal_item.xml

 

public class Study_AnimalActivity extends ListActivity {private List<Map<String,Object>> data;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_study__animal);        getData();        SimpleAdapter simpleAdapter=new SimpleAdapter(this,data,R.layout.study_animal_item,new String[]{"idiom"},new int[]{R.id.idiom});        setListAdapter(simpleAdapter);            }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_study__animal, menu);        return true;    }    private void getData() {    IdiomDao idiomDao=new AnimalDao(this);    List<Idiom> idioms=idiomDao.getIdioms();data = new ArrayList<Map<String, Object>>();for (int i = 0; i < idioms.size(); i++) {Map<String, Object> map = new HashMap<String, Object>();map.put("idiom", idioms.get(i).getIdiom());data.add(map);}}}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"  android:background="@drawable/bg_animal"><ListView android:id="@id/android:list" android:layout_width="fill_parent"android:layout_height="fill_parent" android:drawSelectorOnTop="false"android:cacheColorHint="#00000000"android:scrollbars="vertical" android:layoutAnimation="@anim/list_animation_layout" /></LinearLayout>


 

<?xml version="1.0" encoding="utf-8"?><!-- 显示动物类别,listview中每条要显示的内容 --><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:paddingLeft="10dip" android:paddingRight="10dip"android:paddingTop="1dip" android:paddingBottom="1dip"><TextView android:id="@+id/idiom"android:layout_width="250dip" android:layout_height="wrap_content"android:textSize="25sp"android:gravity="left"android:textColor="#000000"android:layout_alignParentLeft="true" /><ImageButton        android:id="@+id/save"android:layout_width="wrap_content" android:layout_height="wrap_content"android:focusable="false"android:src="@drawable/save"android:layout_toRightOf="@+id/idiom"android:layout_alignParentRight="true" /></RelativeLayout>

 

原创粉丝点击