diff --git a/AndroidLabs/app/src/main/AndroidManifest(2).xml b/AndroidLabs/app/src/main/AndroidManifest(2).xml
new file mode 100644
index 00000000..21e39ba9
--- /dev/null
+++ b/AndroidLabs/app/src/main/AndroidManifest(2).xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215Activity.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215Activity.java
index 95b54870..a8776047 100644
--- a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215Activity.java
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215Activity.java
@@ -1,13 +1,23 @@
package edu.hzuapps.androidlabs.homeworks.net1414080903215;
-import android.support.v7.app.AppCompatActivity;
+import android.app.TabActivity;
+import android.content.Intent;
import android.os.Bundle;
+import android.widget.TabHost;
-public class Net1414080903215Activity extends AppCompatActivity {
-
+public class Net1414080903215Activity extends TabActivity {
+private TabHost tabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_net1414080903215);
+ tabHost=getTabHost();
+ addTab("study",R.string.title_study,Net1414080903215_SelectCategory.class);
+ addTab("search_net1414080903215",R.string.title_search,Net1414080903215_Search.class);
+ addTab("save",R.string.title_save,Net1414080903215_Collection.class);
+ }
+ private void addTab(String tag,int title_introduction,Class ActivityClass) {
+ tabHost.addTab(tabHost.newTabSpec(tag).setIndicator(getString(title_introduction)).setContent(new Intent(this,ActivityClass)));
+ }
}
-}
+
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_Collection.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_Collection.java
new file mode 100644
index 00000000..39ec30d9
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_Collection.java
@@ -0,0 +1,64 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215;
+
+import java.util.ArrayList;
+
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ListActivity;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.ListView;
+
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter.Animal;
+
+
+public class Net1414080903215_Collection extends ListActivity {
+ private Net1414080903215_DBHelper dbHelper;
+ private ArrayList list=null;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ this.setTitle("收藏夹");
+ this.setContentView(R.layout.collection_net1414080903215);
+ setAdapter();
+ }
+ private void setAdapter() {
+ dbHelper=new Net1414080903215_DBHelper(Net1414080903215_Collection.this, "saveidiom.db", null, 1);
+ list=dbHelper.QueryAllAttentionWord();
+ ArrayList showlist=new ArrayList();
+ for(int i=0;i(this, R.layout.animal_item_net1414080903215, showlist));
+ }
+ @Override
+ protected void onListItemClick(ListView l, View v, final int position, long id) {
+ super.onListItemClick(l, v, position, id);
+ Dialog dialog = new AlertDialog.Builder(Net1414080903215_Collection.this)
+ .setTitle("操作")
+ .setItems(new String[]{"成语删除"}, new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Animal word = list.get(position);
+ Net1414080903215_DBHelper md = new Net1414080903215_DBHelper(Net1414080903215_Collection.this, "saveidiom.db", null, 1);
+ md.deleteAttentionWord(word.getId());
+ setAdapter();
+ }
+ })
+ .setNegativeButton("取消", new DialogInterface.OnClickListener() {
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+// TODO Auto-generated method stub
+ }
+ })
+ .create();
+ dialog.show();
+ }
+
+}
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_DBHelper.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_DBHelper.java
new file mode 100644
index 00000000..7674bb61
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_DBHelper.java
@@ -0,0 +1,95 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215;
+
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+
+import java.util.ArrayList;
+
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter.Animal;
+
+/**
+ * Created by acer on 2018/4/27.
+ */
+
+public class Net1414080903215_DBHelper extends SQLiteOpenHelper {//直接在Andriod中创建数据库和表
+ public static final String saveWordListTable = "saveWordListTable";
+ public static final String wordID = "wordID";
+ public static final String wordName = "wordName";
+ public static final String wordPronunciation = "wordPronunciation";
+ public static final String wordAntonym= "wordAntonym=";
+ public static final String wordHomoionym= "wordHomoionym";
+ public static final String wordDerivation= "wordDerivation";
+ public static final String wordExamples= "wordExamples";
+ public static final String wordExplain = "wordexplain";
+ public static final String CREATE_SAVE="create table saveWordListTable(" +
+ "wordID integer ," +
+ "wordName text," +
+ "wordPronunciation varchar,"+
+ "wordAntonym varchar,"+
+ "wordHomoionym varchar,"+
+ "wordDerivation varchar,"+
+ "wordExamples varchar,"+
+ "wordExplain varchar)";
+
+ public Net1414080903215_DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
+ super(context, name, factory, version);
+ this.getWritableDatabase();
+ }
+ @Override
+ public void onCreate(SQLiteDatabase db) {
+ db.execSQL(CREATE_SAVE);//创建数据库的同时创建表
+ }
+
+ @Override
+ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
+ // TODO Auto-generated method stub
+
+ }
+ public void addAttentionWord(int wordId,String wordName,String wordPronunciation,String wordAntonym,String wordHomoionym,String wordDerivation,String wordExamples,String wordExplain) {
+ ContentValues values = new ContentValues();
+ values.put(Net1414080903215_DBHelper.wordID ,wordId);
+ values.put(Net1414080903215_DBHelper.wordName ,wordName);
+ values.put(Net1414080903215_DBHelper.wordPronunciation ,wordPronunciation);
+ values.put(Net1414080903215_DBHelper.wordAntonym ,wordAntonym);
+ values.put(Net1414080903215_DBHelper.wordHomoionym ,wordHomoionym);
+ values.put(Net1414080903215_DBHelper.wordDerivation ,wordDerivation);
+ values.put(Net1414080903215_DBHelper.wordExamples ,wordExamples);
+ values.put(Net1414080903215_DBHelper.wordExplain,wordExplain);
+ this.getWritableDatabase().insert( Net1414080903215_DBHelper.saveWordListTable, null, values);
+ }
+ public ArrayList QueryAllAttentionWord(){
+ SQLiteDatabase db = this.getReadableDatabase();
+ ArrayList List= new ArrayList();
+ Cursor cursor =db.rawQuery("select * from saveWordListTable",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.setExamples(cursor.getString(cursor.getColumnIndex("examples")));
+ animal.setExplain(cursor.getString(cursor.getColumnIndex("explain")));
+ List.add(animal);
+ }
+ while(cursor.moveToNext());
+ }
+ cursor.close();
+ db.close();
+ return List;
+ }
+ public void deleteAttentionWord(int wordId) {
+ SQLiteDatabase db = this.getReadableDatabase();
+ String sql = "delete from saveWordListTable" +
+ " where wordID="+"'"+wordId+"'";
+ db.execSQL(sql);
+ db.close();
+ }
+}
+
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_DBOpenHelper.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_DBOpenHelper.java
new file mode 100644
index 00000000..98e7c208
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_DBOpenHelper.java
@@ -0,0 +1,54 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215;
+
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.os.Environment;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Created by acer on 2018/4/25.
+ */
+
+
+/*实现将数据库文件从raw目录拷贝到手机里存放数据库的位置*/
+public class Net1414080903215_DBOpenHelper {
+ private final int BUFFER_SIZE=400000;//缓冲区大小
+ public static final String DB_NAME="idioms.db";//保存的数据库文件名
+ public static final String PACKAGE_NAME="edu.hzuapps.androidlabs.homeworks.net1414080903215";//应用的包名
+ public static final String DB_PATH="/data"+Environment.getDataDirectory().getAbsolutePath()+"/"+PACKAGE_NAME+"/databases";//在手机里存放数据库的位置
+ private Context context;
+ public Net1414080903215_DBOpenHelper(Context context){
+ this.context=context;
+ }
+ public SQLiteDatabase openDatabase(){
+ try {
+ File myDataPath=new File(DB_PATH);
+ if(!myDataPath.exists()){
+ myDataPath.mkdirs();//如果没有这个目录则创建
+ }
+ String dbfile=myDataPath+"/"+DB_NAME;
+ if(!(new File(dbfile).exists())){//判断数据库文件是否存在,如果不存在则执行导入,否则直接打开数据库
+ InputStream is=context.getResources().openRawResource(R.raw.idioms);
+ FileOutputStream fos=new FileOutputStream(dbfile);
+ byte[] buffer=new byte[BUFFER_SIZE];
+ int count=0;
+ while((count=is.read(buffer))>0){
+ fos.write(buffer,0,count);
+ }
+ fos.close();
+ is.close();
+ }
+ SQLiteDatabase db=SQLiteDatabase.openOrCreateDatabase(dbfile,null);
+ return db;
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_Search.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_Search.java
new file mode 100644
index 00000000..e9675a0c
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_Search.java
@@ -0,0 +1,46 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.webkit.WebView;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Toast;
+
+/**
+ * Created by acer on 2018/4/27.
+ */
+
+public class Net1414080903215_Search extends Activity {
+ private EditText search_edit;
+ private Button search;
+ private WebView myWebView1;
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.search_net1414080903215);
+ search_edit=(EditText) findViewById(R.id.search_edit);
+ search=(Button) findViewById(R.id.search);
+ myWebView1=(WebView) findViewById(R.id.myWebView1);
+ search.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ String strURI = (search_edit.getText().toString());
+ strURI = strURI.trim();
+ if(strURI.length()==0)
+ {
+ Toast.makeText(Net1414080903215_Search.this, "查询内容不能为空!", Toast.LENGTH_LONG).show();
+ }
+ else
+ {
+ String strURL = "http://xh.5156edu.com/m/search_net1414080903215?keyfrom=dict.mindex&q="+strURI;
+ myWebView1.loadUrl(strURL);
+ }
+ }
+ });
+
+ }
+
+}
+
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_SelectCategory.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_SelectCategory.java
new file mode 100644
index 00000000..0777c0bc
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_SelectCategory.java
@@ -0,0 +1,61 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.ListView;
+
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter.Category;
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter.CategoryAdapter;
+
+
+public class Net1414080903215_SelectCategory extends Activity {
+ private List categoryList;
+ private String[] category_names;
+ private int[] category_images;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.selectcategory_net1414080903215);
+ initCategories();
+ CategoryAdapter adapter=new CategoryAdapter(this,R.layout.category_item_net1414080903215,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(Net1414080903215_SelectCategory.this,Net1414080903215_Study.class);
+ startActivity(intent);
+ break;
+ default:
+ break;
+ }
+ }
+ });
+ }
+ private void initCategories() {
+ categoryList = new ArrayList();
+ 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 animalList;
+ private Net1414080903215_StudyDao animalDao;
+ private ListView lvAnimalList;
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.study_net1414080903215);
+ initAnimals();
+ lvAnimalList=(ListView)findViewById(R.id.lvAnimalList);
+ AnimalAdapter animalAdapter=new AnimalAdapter(this,R.layout.animal_item_net1414080903215,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();
+ final AlertDialog.Builder dialog=new AlertDialog.Builder(Net1414080903215_Study.this);
+ dialog.setMessage(result);
+ dialog.setCancelable(false);
+ dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ }
+ });
+ dialog.show();
+ }
+ });
+ }
+ /*获取成语数据*/
+ private void initAnimals() {
+ animalDao= Net1414080903215_StudyDao.getInstance(this);
+ animalList=animalDao.getAllAnimals();
+ }
+}
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_StudyDao.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_StudyDao.java
new file mode 100644
index 00000000..8dfe419b
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/Net1414080903215_StudyDao.java
@@ -0,0 +1,51 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter.Animal;
+
+/**
+ * Created by acer on 2018/4/25.
+ */
+
+public class Net1414080903215_StudyDao {
+ private static Net1414080903215_StudyDao animaiDao;
+ private SQLiteDatabase db;
+ /*将构造方法私有化*/
+ private Net1414080903215_StudyDao(Context context){
+ Net1414080903215_DBOpenHelper dbHelper=new Net1414080903215_DBOpenHelper(context);
+ db=dbHelper.openDatabase();
+ }
+ /*获取AnimalDao的实例*/
+ public synchronized static Net1414080903215_StudyDao getInstance(Context context){
+ if(animaiDao==null){
+ animaiDao=new Net1414080903215_StudyDao(context);
+ }
+ return animaiDao;
+ }
+ /*从数据库读取所有的动物类成语*/
+ public List getAllAnimals(){
+ List list=new ArrayList();
+ 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;
+ }
+}
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/Animal.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/Animal.java
new file mode 100644
index 00000000..dd39b24d
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/Animal.java
@@ -0,0 +1,65 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter;
+
+/**
+ * Created by acer on 2018/4/25.
+ */
+
+public class Animal {
+ 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;
+ }
+ }
+
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/AnimalAdapter.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/AnimalAdapter.java
new file mode 100644
index 00000000..91bb91f4
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/AnimalAdapter.java
@@ -0,0 +1,79 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageButton;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import java.util.List;
+
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.Net1414080903215_DBHelper;
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.R;
+
+public class AnimalAdapter extends ArrayAdapter{
+ private Net1414080903215_DBHelper dbHelper;
+ private int resourceId;
+ private Context context;
+ private List list;
+ public AnimalAdapter(Context context, int resource, List objects) {
+ super(context,resource, objects);
+ this.context=context;
+ resourceId=resource;
+ this.list=objects;
+ }
+ @Override
+ public View getView(final 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) {
+ Dialog dialog = new AlertDialog.Builder(context)
+ .setTitle("收藏")
+ .setMessage("确定要将该成语添加入收藏夹吗?")
+ .setPositiveButton("确定", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ /* User clicked OK so do some stuff */
+ dbHelper=new Net1414080903215_DBHelper(context,"saveidiom.db",null,1);
+ dbHelper.getWritableDatabase();
+ dbHelper.addAttentionWord(list.get(position).getId()//将数据保存在表里
+ , list.get(position).getName()
+ , list.get(position).getPronounce(),list.get(position).getAntonym(),list.get(position).getHomoionym()
+ , list.get(position).getDerivation(),list.get(position).getExamples(),list.get(position).getExplain());
+ }
+ })
+ .setNegativeButton("取消", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ /* User clicked OK so do some stuff */
+ }
+ }).create();
+ dialog.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;
+ }
+}
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/Category.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/Category.java
new file mode 100644
index 00000000..160807fb
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/Category.java
@@ -0,0 +1,22 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter;
+
+/**
+ * Created by acer on 2018/4/25.
+ */
+
+
+public class Category {
+ private String name;
+ private int imageId;
+ public Category(String name, int imageId) {
+ super();
+ this.name = name;
+ this.imageId = imageId;
+ }
+ public String getName() {
+ return name;
+ }
+ public int getImageId() {
+ return imageId;
+ }
+}
diff --git a/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/CategoryAdapter.java b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/CategoryAdapter.java
new file mode 100644
index 00000000..db79fc6d
--- /dev/null
+++ b/AndroidLabs/app/src/main/java/edu/hzuapps/androidlabs/homeworks/net1414080903215/adapter/CategoryAdapter.java
@@ -0,0 +1,44 @@
+package edu.hzuapps.androidlabs.homeworks.net1414080903215.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.util.List;
+
+import edu.hzuapps.androidlabs.homeworks.net1414080903215.R;
+
+public class CategoryAdapter extends ArrayAdapter{
+
+ private int resourceId;
+ public CategoryAdapter(Context context, int resource,
+ List categoryList) {
+ super(context,resource, categoryList);
+ resourceId=resource;
+ }
+ public View getView(int position, 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;
+ }
+}
diff --git a/AndroidLabs/app/src/main/res/drawable/btnsave.PNG b/AndroidLabs/app/src/main/res/drawable/btnsave.PNG
new file mode 100644
index 00000000..dbaeb109
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/btnsave.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_animal.PNG b/AndroidLabs/app/src/main/res/drawable/category_animal.PNG
new file mode 100644
index 00000000..fd7b3ade
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_animal.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_fable.PNG b/AndroidLabs/app/src/main/res/drawable/category_fable.PNG
new file mode 100644
index 00000000..ac2e66a5
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_fable.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_human.PNG b/AndroidLabs/app/src/main/res/drawable/category_human.PNG
new file mode 100644
index 00000000..98840710
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_human.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_nature.PNG b/AndroidLabs/app/src/main/res/drawable/category_nature.PNG
new file mode 100644
index 00000000..15c99096
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_nature.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_number.PNG b/AndroidLabs/app/src/main/res/drawable/category_number.PNG
new file mode 100644
index 00000000..d94ba630
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_number.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_other.PNG b/AndroidLabs/app/src/main/res/drawable/category_other.PNG
new file mode 100644
index 00000000..31cb5e97
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_other.PNG differ
diff --git a/AndroidLabs/app/src/main/res/drawable/category_season.PNG b/AndroidLabs/app/src/main/res/drawable/category_season.PNG
new file mode 100644
index 00000000..144dbf1d
Binary files /dev/null and b/AndroidLabs/app/src/main/res/drawable/category_season.PNG differ
diff --git a/AndroidLabs/app/src/main/res/layout/activity_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/activity_net1414080903215.xml
index 1ffebb84..9faa8b19 100644
--- a/AndroidLabs/app/src/main/res/layout/activity_net1414080903215.xml
+++ b/AndroidLabs/app/src/main/res/layout/activity_net1414080903215.xml
@@ -1,17 +1,54 @@
-
-
-
+ tools:context=".Net1414080903215Activity" >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/res/layout/animal_item_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/animal_item_net1414080903215.xml
new file mode 100644
index 00000000..d24337d3
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/layout/animal_item_net1414080903215.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/res/layout/category_item_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/category_item_net1414080903215.xml
new file mode 100644
index 00000000..9b81f7c9
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/layout/category_item_net1414080903215.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/AndroidLabs/app/src/main/res/layout/collection_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/collection_net1414080903215.xml
new file mode 100644
index 00000000..a8de37bd
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/layout/collection_net1414080903215.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/res/layout/search_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/search_net1414080903215.xml
new file mode 100644
index 00000000..733572a9
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/layout/search_net1414080903215.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/res/layout/selectcategory_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/selectcategory_net1414080903215.xml
new file mode 100644
index 00000000..31d7fee1
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/layout/selectcategory_net1414080903215.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/res/layout/study_net1414080903215.xml b/AndroidLabs/app/src/main/res/layout/study_net1414080903215.xml
new file mode 100644
index 00000000..1f0508ec
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/layout/study_net1414080903215.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AndroidLabs/app/src/main/res/raw/idioms.db b/AndroidLabs/app/src/main/res/raw/idioms.db
new file mode 100644
index 00000000..54ce1850
Binary files /dev/null and b/AndroidLabs/app/src/main/res/raw/idioms.db differ
diff --git a/AndroidLabs/app/src/main/res/values/strings_net1414080903215.xml b/AndroidLabs/app/src/main/res/values/strings_net1414080903215.xml
new file mode 100644
index 00000000..b0aad84e
--- /dev/null
+++ b/AndroidLabs/app/src/main/res/values/strings_net1414080903215.xml
@@ -0,0 +1,17 @@
+
+ net1414080903215
+ Settings
+ 学习
+ 搜索
+ 收藏
+ 动物类
+
+ - 动物类
+ - 自然类
+ - 人物类
+ - 季节类
+ - 数字类
+ - 寓言类
+ - 其它类
+
+