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 @@ + + + + +