test包下新建DBOpenHelperTest.java页面测试一下数据库是否处理成功。
DBOpenHelperTest.java页面:
- package cn.edu.bztc.happyidiom.test;
- import cn.edu.bztc.happyidiom.db.DBOpenHelper;
- import android.test.AndroidTestCase;
- public class DBOpenHelperTest extends AndroidTestCase{
- public void testDBCopy(){
- DBOpenHelper dbOpenHelper=new DBOpenHelper(getContext());
- dbOpenHelper.openDatabase();
- }
- }
单元测试需要在AndroidManifest.xml页面进行配置。
</application>上方添加:
- <uses-library android:name="android.test.runner"/>
</manifest>上方添加:
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="cn.edu.bztc.happyidion.activity"></instrumentation>
测试成功继续编写页面。dao包下新建AnimalDao.java类,获取数据库中数据。
AnimalDao.java页面:
- package cn.edu.bztc.happyidiom.dao;
- import java.util.ArrayList;
- import java.util.List;
- import cn.edu.bztc.happyidiom.db.DBOpenHelper;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- public class AnimalDao {
- private static AnimalDao animaiDao;
- private SQLiteDatabase db;
- /*将构造方法私有化*/
- private AnimalDao(Context context){
- DBOpenHelper dbHelper=new DBOpenHelper(context);
- db=dbHelper.openDatabase();
- }
- /*获取AnimalDao的实例*/
- public synchronized static AnimalDao getInstance(Context context){
- if(animaiDao==null){
- animaiDao=new AnimalDao(context);
- }
- return animaiDao;
- }
- /*从数据库读取所有的动物类成语*/
- public List<Animal> getAllAnimals(){
- List<Animal> list=new ArrayList<Animal>();
- Cursor cursor=db.query("animal",null,null,null,null,null,null);
- if(cursor.moveToNext()){
- 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.setExamples(cursor.getString(cursor.getColumnIndex("examples")));
- animal.setExplain(cursor.getString(cursor.getColumnIndex("explain")));
- list.add(animal);
- }while(cursor.moveToNext());
- }
- return list;
- }
- }
再次在test包下新建AnimalDaoTest.java测试类,测试是否能够读取数据。
AnimalDaoTest.java页面:
- package cn.edu.bztc.happyidiom.test;
- import java.util.List;
- import cn.edu.bztc.happyidiom.dao.AnimalDao;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import android.test.AndroidTestCase;
- 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());
- }
- }
- }
adapter包下新建CategoryAdapter.java页面,处理学习页面的ListView和学习类别数据源。
CategoryAdapter.java页面:
- package cn.edu.bztc.happyidiom.adapter;
- import java.util.List;
- import cn.edu.bztc.happyidiom.entity.Category;
- import cn.edu.bztc.happyidion.activity.R;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.webkit.WebView.FindListener;
- import android.widget.ArrayAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class CategoryAdapter extends ArrayAdapter<Category>{
- private int resourceId;
- public CategoryAdapter(Context context, int resource,
- List<Category> categoryList) {
- super(context,resource, categoryList);
- resourceId=resource;
- }
- public View getView(int position, android.view.View convertView, android.view.ViewGroup parent) {
- Category category=getItem(position);//获取当前项的Category实例
- View view;
- ViewHolder viewHolder;
- if(convertView==null){
- view=LayoutInflater.from(getContext()).inflate(resourceId,null);
- viewHolder=new ViewHolder();
- viewHolder.categoryImage=(ImageView)view.findViewById(R.id.category_image);
- viewHolder.categoryName=(TextView)view.findViewById(R.id.category_name);
- view.setTag(viewHolder);
- }else{
- view=convertView;
- viewHolder=(ViewHolder) view.getTag();
- }
- viewHolder.categoryImage.setImageResource(category.getImageId());
- viewHolder.categoryName.setText(category.getName());
- return view;
- }
- class ViewHolder{
- ImageView categoryImage;
- TextView categoryName;
- }
- }
adapter包下新建AnimalAdapter.java页面,处理动物类别页面的ListView和具体成语数据源。
AnimalAdapter.java页面:
- package cn.edu.bztc.happyidiom.adapter;
- import java.util.List;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import cn.edu.bztc.happyidion.activity.R;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.webkit.WebView.FindListener;
- import android.widget.ArrayAdapter;
- import android.widget.ImageButton;
- import android.widget.TextView;
- import android.widget.Toast;
- public class AnimalAdapter extends ArrayAdapter<Animal>{
- private int resourceId;
- private Context context;
- public AnimalAdapter(Context context, int resource,List<Animal> objects) {
- super(context,resource, objects);
- this.context=context;
- resourceId=resource;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- final Animal animal =getItem(position);//获取当前项的Animal实例
- View view;
- ViewHolder viewHolder;
- if(convertView==null){//判断是否第一次运行,如果是则进入,并将上下文环境保存进convertView
- view=LayoutInflater.from(getContext()).inflate(resourceId,null);
- viewHolder=new ViewHolder();
- viewHolder.tvName=(TextView)view.findViewById(R.id.tvName);
- viewHolder.btnSave=(ImageButton)view.findViewById(R.id.btnSave);
- viewHolder.btnSave.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- Toast.makeText(context,"你要收藏"+animal.getName()+"吗",Toast.LENGTH_SHORT).show();
- }
- });
- view.setTag(viewHolder);
- }else{//如果不是第一次运行,convertView不为空,直接取出赋值给view
- view=convertView;
- viewHolder=(ViewHolder) view.getTag();
- }
- viewHolder.tvName.setText(animal.getName());//显示成语
- return view;
- }
- class ViewHolder{
- TextView tvName;
- ImageButton btnSave;
- }
- }
在util包下新建DialogUtil.java.java页面,作为弹出对话框的处理页面。
DialogUtil.jav页面:
- package cn.edu.bztc.happyidiom.util;
- import cn.edu.bztc.happyidion.activity.R;
- import android.app.AlertDialog;
- import android.app.AlertDialog.Builder;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.widget.TextView;
- public class DialogUtil {
- public static void showDialog(String result,Context context){
- AlertDialog.Builder builder=new AlertDialog.Builder(context);
- LayoutInflater layoutInflater=LayoutInflater.from(context);
- View view=layoutInflater.inflate(R.layout.dialog_info,null);
- builder.setView(view);
- TextView tvdiomInfo=(TextView)view.findViewById(R.id.tvIdiomInfo);
- tvdiomInfo.setText(result);//设置之前定义的提示语句
- builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();//对话框关闭
- }
- });
- builder.create().show();//打开对话框
- }
- }
MainActivity.java页面用于配置TabHost控件子页面。
MainActivity.java页面:
- package cn.edu.bztc.happyidion.activity;
- import android.app.TabActivity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.Window;
- import android.widget.TabHost;
- public class MainActivity extends TabActivity{
- private TabHost tabHost;//导航栏控件
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏
- setContentView(R.layout.activity_main);
- tabHost=getTabHost(); //获取TabHost实例
- /*一个Tab对应一个name名称,一个标题,一个图标,yigeActivity页面*/
- addTab("study",R.string.title_study,R.drawable.study,StudyActivity.class);
- addTab("search",R.string.title_search,R.drawable.search,StudyActivity.class);
- addTab("game",R.string.title_game,R.drawable.game,StudyActivity.class);
- addTab("save",R.string.title_save,R.drawable.save,StudyActivity.class);
- addTab("help",R.string.title_help,R.drawable.help,StudyActivity.class);
- }
- /*定义每个Tab的显示内容*/
- private void addTab(String tag,int title_introduction,int title_icon,Class ActivityClass){
- tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(getString(title_introduction),getResources().getDrawable(title_icon)).setContent(new Intent(this,ActivityClass)));
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
StudyActivity.java页面作为学习页面显示成语类别。
StudyActivity.java页面:
- package cn.edu.bztc.happyidion.activity;
- import java.util.ArrayList;
- import java.util.List;
- import cn.edu.bztc.happyidiom.adapter.CategoryAdapter;
- import cn.edu.bztc.happyidiom.entity.Category;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.res.Resources;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ListView;
- import android.widget.Toast;
- public class StudyActivity extends Activity {
- private List<Category> categoryList;
- private String[] category_names;
- private int[] category_images;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_study);
- initCategories();
- CategoryAdapter adapter=new CategoryAdapter(this,R.layout.category_item,categoryList);
- ListView listView=(ListView) findViewById(R.id.lvCategories);
- listView.setAdapter(adapter);//绑定适配器
- listView.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapter, View view, int position,
- long id) {
- switch (position) {//position为0代表动物类
- case 0:
- Intent intent=new Intent(StudyActivity.this,StudyAnimalActivity.class);
- startActivity(intent);
- break;
- default:
- break;
- }
- }
- });
- }
- private void initCategories() {
- categoryList = new ArrayList<Category>();
- Resources resources = getResources();
- /*获取数据源*/
- category_names = resources.getStringArray(R.array.category);
- category_images = new int[] { R.drawable.category_animal,
- R.drawable.category_nature, R.drawable.category_human,
- R.drawable.category_season, R.drawable.category_number,
- R.drawable.category_fable, R.drawable.category_other };
- for(int i=0;i<category_names.length;i++){
- categoryList.add(new Category(category_names[i],category_images[i]));
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main,menu);
- return true;
- }
- }
StudyAnimalActivity.java页面用于显示动物类别中具体的成语信息,以及每一项的点击事件。
StudynimalActivity.java页面:
- package cn.edu.bztc.happyidion.activity;
- import java.util.List;
- import cn.edu.bztc.happyidiom.adapter.AnimalAdapter;
- import cn.edu.bztc.happyidiom.dao.AnimalDao;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import cn.edu.bztc.happyidiom.util.DialogUtil;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ListView;
- import android.widget.Toast;
- public class StudyAnimalActivity extends Activity{
- private List<Animal> animalList;
- private AnimalDao animalDao;
- private ListView lvAnimalList;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_animal);
- initAnimals();
- lvAnimalList=(ListView)findViewById(R.id.lvAnimalList);
- AnimalAdapter animalAdapter=new AnimalAdapter(this,R.layout.animal_item,animalList);
- lvAnimalList.setAdapter(animalAdapter);
- lvAnimalList.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int position,
- long id) {
- Animal animal=animalList.get(position);
- /*定义对话框中提示语句*/
- String result=animal.getName()+"\n"+
- animal.getPronounce()+
- "\n【解释】:"+animal.getExplain()+
- "\n【近义词】:"+animal.getHomoionym()+
- "\n【反义词】:"+animal.getAntonym()+
- "\n【来源】:"+animal.getDerivation()+
- "\n【示例】:"+animal.getExamples();
- DialogUtil.showDialog(result,StudyAnimalActivity.this);
- }
- });
- }
- /*获取成语数据*/
- private void initAnimals() {
- animalDao=AnimalDao.getInstance(this);
- animalList=animalDao.getAllAnimals();
- }
- }
15.test包下新建DBOpenHelperTest.java页面测试一下数据库是否处理成功。
DBOpenHelperTest.java页面:
- package cn.edu.bztc.happyidiom.test;
- import cn.edu.bztc.happyidiom.db.DBOpenHelper;
- import android.test.AndroidTestCase;
- public class DBOpenHelperTest extends AndroidTestCase{
- public void testDBCopy(){
- DBOpenHelper dbOpenHelper=new DBOpenHelper(getContext());
- dbOpenHelper.openDatabase();
- }
- }
16.单元测试需要在AndroidManifest.xml页面进行配置。
</application>上方添加:
- <uses-library android:name="android.test.runner"/>
</manifest>上方添加:
- <instrumentation android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="cn.edu.bztc.happyidion.activity"></instrumentation>
17.测试成功继续编写页面。dao包下新建AnimalDao.java类,获取数据库中数据。
AnimalDao.java页面:
- package cn.edu.bztc.happyidiom.dao;
- import java.util.ArrayList;
- import java.util.List;
- import cn.edu.bztc.happyidiom.db.DBOpenHelper;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- public class AnimalDao {
- private static AnimalDao animaiDao;
- private SQLiteDatabase db;
- /*将构造方法私有化*/
- private AnimalDao(Context context){
- DBOpenHelper dbHelper=new DBOpenHelper(context);
- db=dbHelper.openDatabase();
- }
- /*获取AnimalDao的实例*/
- public synchronized static AnimalDao getInstance(Context context){
- if(animaiDao==null){
- animaiDao=new AnimalDao(context);
- }
- return animaiDao;
- }
- /*从数据库读取所有的动物类成语*/
- public List<Animal> getAllAnimals(){
- List<Animal> list=new ArrayList<Animal>();
- Cursor cursor=db.query("animal",null,null,null,null,null,null);
- if(cursor.moveToNext()){
- 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.setExamples(cursor.getString(cursor.getColumnIndex("examples")));
- animal.setExplain(cursor.getString(cursor.getColumnIndex("explain")));
- list.add(animal);
- }while(cursor.moveToNext());
- }
- return list;
- }
- }
18.再次在test包下新建AnimalDaoTest.java测试类,测试是否能够读取数据。
AnimalDaoTest.java页面:
- package cn.edu.bztc.happyidiom.test;
- import java.util.List;
- import cn.edu.bztc.happyidiom.dao.AnimalDao;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import android.test.AndroidTestCase;
- 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());
- }
- }
- }
19.adapter包下新建CategoryAdapter.java页面,处理学习页面的ListView和学习类别数据源。
CategoryAdapter.java页面:
- package cn.edu.bztc.happyidiom.adapter;
- import java.util.List;
- import cn.edu.bztc.happyidiom.entity.Category;
- import cn.edu.bztc.happyidion.activity.R;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.webkit.WebView.FindListener;
- import android.widget.ArrayAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class CategoryAdapter extends ArrayAdapter<Category>{
- private int resourceId;
- public CategoryAdapter(Context context, int resource,
- List<Category> categoryList) {
- super(context,resource, categoryList);
- resourceId=resource;
- }
- public View getView(int position, android.view.View convertView, android.view.ViewGroup parent) {
- Category category=getItem(position);//获取当前项的Category实例
- View view;
- ViewHolder viewHolder;
- if(convertView==null){
- view=LayoutInflater.from(getContext()).inflate(resourceId,null);
- viewHolder=new ViewHolder();
- viewHolder.categoryImage=(ImageView)view.findViewById(R.id.category_image);
- viewHolder.categoryName=(TextView)view.findViewById(R.id.category_name);
- view.setTag(viewHolder);
- }else{
- view=convertView;
- viewHolder=(ViewHolder) view.getTag();
- }
- viewHolder.categoryImage.setImageResource(category.getImageId());
- viewHolder.categoryName.setText(category.getName());
- return view;
- }
- class ViewHolder{
- ImageView categoryImage;
- TextView categoryName;
- }
- }
20.adapter包下新建AnimalAdapter.java页面,处理动物类别页面的ListView和具体成语数据源。
AnimalAdapter.java页面:
- package cn.edu.bztc.happyidiom.adapter;
- import java.util.List;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import cn.edu.bztc.happyidion.activity.R;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.webkit.WebView.FindListener;
- import android.widget.ArrayAdapter;
- import android.widget.ImageButton;
- import android.widget.TextView;
- import android.widget.Toast;
- public class AnimalAdapter extends ArrayAdapter<Animal>{
- private int resourceId;
- private Context context;
- public AnimalAdapter(Context context, int resource,List<Animal> objects) {
- super(context,resource, objects);
- this.context=context;
- resourceId=resource;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- final Animal animal =getItem(position);//获取当前项的Animal实例
- View view;
- ViewHolder viewHolder;
- if(convertView==null){//判断是否第一次运行,如果是则进入,并将上下文环境保存进convertView
- view=LayoutInflater.from(getContext()).inflate(resourceId,null);
- viewHolder=new ViewHolder();
- viewHolder.tvName=(TextView)view.findViewById(R.id.tvName);
- viewHolder.btnSave=(ImageButton)view.findViewById(R.id.btnSave);
- viewHolder.btnSave.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View arg0) {
- Toast.makeText(context,"你要收藏"+animal.getName()+"吗",Toast.LENGTH_SHORT).show();
- }
- });
- view.setTag(viewHolder);
- }else{//如果不是第一次运行,convertView不为空,直接取出赋值给view
- view=convertView;
- viewHolder=(ViewHolder) view.getTag();
- }
- viewHolder.tvName.setText(animal.getName());//显示成语
- return view;
- }
- class ViewHolder{
- TextView tvName;
- ImageButton btnSave;
- }
- }
21.在util包下新建DialogUtil.java.java页面,作为弹出对话框的处理页面。
DialogUtil.jav页面:
- package cn.edu.bztc.happyidiom.util;
- import cn.edu.bztc.happyidion.activity.R;
- import android.app.AlertDialog;
- import android.app.AlertDialog.Builder;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.widget.TextView;
- public class DialogUtil {
- public static void showDialog(String result,Context context){
- AlertDialog.Builder builder=new AlertDialog.Builder(context);
- LayoutInflater layoutInflater=LayoutInflater.from(context);
- View view=layoutInflater.inflate(R.layout.dialog_info,null);
- builder.setView(view);
- TextView tvdiomInfo=(TextView)view.findViewById(R.id.tvIdiomInfo);
- tvdiomInfo.setText(result);//设置之前定义的提示语句
- builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();//对话框关闭
- }
- });
- builder.create().show();//打开对话框
- }
- }
22.MainActivity.java页面用于配置TabHost控件子页面。
MainActivity.java页面:
- package cn.edu.bztc.happyidion.activity;
- import android.app.TabActivity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.Window;
- import android.widget.TabHost;
- public class MainActivity extends TabActivity{
- private TabHost tabHost;//导航栏控件
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏
- setContentView(R.layout.activity_main);
- tabHost=getTabHost(); //获取TabHost实例
- /*一个Tab对应一个name名称,一个标题,一个图标,yigeActivity页面*/
- addTab("study",R.string.title_study,R.drawable.study,StudyActivity.class);
- addTab("search",R.string.title_search,R.drawable.search,StudyActivity.class);
- addTab("game",R.string.title_game,R.drawable.game,StudyActivity.class);
- addTab("save",R.string.title_save,R.drawable.save,StudyActivity.class);
- addTab("help",R.string.title_help,R.drawable.help,StudyActivity.class);
- }
- /*定义每个Tab的显示内容*/
- private void addTab(String tag,int title_introduction,int title_icon,Class ActivityClass){
- tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(getString(title_introduction),getResources().getDrawable(title_icon)).setContent(new Intent(this,ActivityClass)));
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
23.StudyActivity.java页面作为学习页面显示成语类别。
StudyActivity.java页面:
- package cn.edu.bztc.happyidion.activity;
- import java.util.ArrayList;
- import java.util.List;
- import cn.edu.bztc.happyidiom.adapter.CategoryAdapter;
- import cn.edu.bztc.happyidiom.entity.Category;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.res.Resources;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ListView;
- import android.widget.Toast;
- public class StudyActivity extends Activity {
- private List<Category> categoryList;
- private String[] category_names;
- private int[] category_images;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_study);
- initCategories();
- CategoryAdapter adapter=new CategoryAdapter(this,R.layout.category_item,categoryList);
- ListView listView=(ListView) findViewById(R.id.lvCategories);
- listView.setAdapter(adapter);//绑定适配器
- listView.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapter, View view, int position,
- long id) {
- switch (position) {//position为0代表动物类
- case 0:
- Intent intent=new Intent(StudyActivity.this,StudyAnimalActivity.class);
- startActivity(intent);
- break;
- default:
- break;
- }
- }
- });
- }
- private void initCategories() {
- categoryList = new ArrayList<Category>();
- Resources resources = getResources();
- /*获取数据源*/
- category_names = resources.getStringArray(R.array.category);
- category_images = new int[] { R.drawable.category_animal,
- R.drawable.category_nature, R.drawable.category_human,
- R.drawable.category_season, R.drawable.category_number,
- R.drawable.category_fable, R.drawable.category_other };
- for(int i=0;i<category_names.length;i++){
- categoryList.add(new Category(category_names[i],category_images[i]));
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main,menu);
- return true;
- }
- }
24.StudyAnimalActivity.java页面用于显示动物类别中具体的成语信息,以及每一项的点击事件。
StudynimalActivity.java页面:
- package cn.edu.bztc.happyidion.activity;
- import java.util.List;
- import cn.edu.bztc.happyidiom.adapter.AnimalAdapter;
- import cn.edu.bztc.happyidiom.dao.AnimalDao;
- import cn.edu.bztc.happyidiom.entity.Animal;
- import cn.edu.bztc.happyidiom.util.DialogUtil;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.ListView;
- import android.widget.Toast;
- public class StudyAnimalActivity extends Activity{
- private List<Animal> animalList;
- private AnimalDao animalDao;
- private ListView lvAnimalList;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_animal);
- initAnimals();
- lvAnimalList=(ListView)findViewById(R.id.lvAnimalList);
- AnimalAdapter animalAdapter=new AnimalAdapter(this,R.layout.animal_item,animalList);
- lvAnimalList.setAdapter(animalAdapter);
- lvAnimalList.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int position,
- long id) {
- Animal animal=animalList.get(position);
- /*定义对话框中提示语句*/
- String result=animal.getName()+"\n"+
- animal.getPronounce()+
- "\n【解释】:"+animal.getExplain()+
- "\n【近义词】:"+animal.getHomoionym()+
- "\n【反义词】:"+animal.getAntonym()+
- "\n【来源】:"+animal.getDerivation()+
- "\n【示例】:"+animal.getExamples();
- DialogUtil.showDialog(result,StudyAnimalActivity.this);
- }
- });
- }
- /*获取成语数据*/
- private void initAnimals() {
- animalDao=AnimalDao.getInstance(this);
- animalList=animalDao.getAllAnimals();
- }
- }