package com.bawei.lian2; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import com.bawei.vo.Good; import com.bawei.vo.Info; import com.google.gson.Gson; import android.os.Bundle; import android.app.Activity; import android.database.sqlite.SQLiteDatabase; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; public class MainActivity extends Activity { public static final String URL="http://www.hengboit.com/json/json_search.php?wd="; private EditText editText; private Button button; private ExpandableListView elv; private SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.edittext); button = (Button) findViewById(R.id.button); elv = (ExpandableListView) findViewById(R.id.elv); MySqliteHelper helper=new MySqliteHelper(MainActivity.this,"ss",null,1); db = helper.getWritableDatabase(); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String name = editText.getText().toString(); init(name); } }); } private void init(final String name) { // TODO Auto-generated method stub new Thread(){ private Set<String> set; public void run() { String st=NetWork.geturl("http://www.hengboit.com/json/json_search.php?wd="+name); Gson gson=new Gson(); Good good = gson.fromJson(st, Good.class); List<Info> info = good.getInfo(); set = new HashSet<String>(); for(int i=0;i<info.size();i++){ set.add(info.get(i).getCtitle()); } final List<String> list=new ArrayList<String>(); list.addAll(set); for(int i=0;i<list.size();i++){ String s = list.get(i); db.execSQL("insert into user values(null,?)",new Object[]{s}); } for(int i=0;i<info.size();i++){ String cid = info.get(i).getCid(); String ctime = info.get(i).getCtime(); String ctitle = info.get(i).getCtitle(); String id = info.get(i).getId(); String descript = info.get(i).getDescript(); String picurl = info.get(i).getPicurl(); String title = info.get(i).getTitle(); String type = info.get(i).getType(); db.execSQL("insert into good values(?,?,?,?,?,?,?,?)",new Object[]{id,cid,ctime,ctitle, descript,picurl,title,type}); } runOnUiThread( new Runnable() { public void run() { Shipei adapter=new Shipei(MainActivity.this,list); elv.setAdapter(adapter); elv.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // TODO Auto-generated method stub return false; } }); } }); }; }.start(); } }
package com.bawei.lian2; import java.util.ArrayList; import java.util.List; import com.bawei.vo.Info; import com.lidroid.xutils.BitmapUtils; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.ImageView; import android.widget.TextView; public class Shipei extends BaseExpandableListAdapter{ Context context; List<String> list; private SQLiteDatabase db; public Shipei(Context context, List<String> list) { // TODO Auto-generated constructor stub this.context=context; this.list=list; MySqliteHelper helper=new MySqliteHelper(context,"ss",null,1); db = helper.getWritableDatabase(); } @Override public Object getChild(int groupPosition, int childPosition) { // TODO Auto-generated method stub return null; } @Override public long getChildId(int groupPosition, int childPosition) { // TODO Auto-generated method stub return 0; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { // TODO Auto-generated method stub String name = list.get(groupPosition); Cursor c = db.rawQuery("select * from good where ctitle=?", new String[]{name}); List<Info> li=new ArrayList<Info>(); while(c.moveToNext()){ String cid=c.getString(c.getColumnIndex("cid")); String ctime=c.getString(c.getColumnIndex("ctime")); String ctitle=c.getString(c.getColumnIndex("ctitle")); String descript=c.getString(c.getColumnIndex("descript")); String id=c.getString(c.getColumnIndex("id")); String picurl=c.getString(c.getColumnIndex("picurl")); String title=c.getString(c.getColumnIndex("title")); String type=c.getString(c.getColumnIndex("type")); li.add(new Info(cid, ctime, ctitle, descript, id, picurl, title, type)); } View view=View.inflate(context, R.layout.bu, null); ImageView img=(ImageView) view.findViewById(R.id.img); TextView tv_title=(TextView) view.findViewById(R.id.tv_title); TextView tv_desc=(TextView) view.findViewById(R.id.tv_desc); TextView tv_time=(TextView) view.findViewById(R.id.tv_time); Info in = li.get(childPosition); tv_title.setText(in.getTitle()); tv_desc.setText(in.getDescript()); tv_time.setText(in.getCtitle()); BitmapUtils bit=new BitmapUtils(context); bit.display(img,in.getPicurl()); return view; } @Override public int getChildrenCount(int groupPosition) { // TODO Auto-generated method stub String name = list.get(groupPosition); Cursor c = db.rawQuery("select * from good where ctitle=?", new String[]{name}); return c.getCount(); } @Override public Object getGroup(int groupPosition) { // TODO Auto-generated method stub return null; } @Override public int getGroupCount() { // TODO Auto-generated method stub Cursor c = db.rawQuery("select * from user ", new String[]{}); return c.getCount(); } @Override public long getGroupId(int groupPosition) { // TODO Auto-generated method stub return 0; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub Cursor c = db.rawQuery("select * from user ", new String[]{}); List<String> l=new ArrayList<String>(); while(c.moveToNext()){ String st = c.getString(c.getColumnIndex("ctitle")); l.add(st); } View view=View.inflate(context, android.R.layout.simple_expandable_list_item_1, null); TextView textView=(TextView) view.findViewById(android.R.id.text1); textView.setText(l.get(groupPosition)); return view; } @Override public boolean hasStableIds() { // TODO Auto-generated method stub return false; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { // TODO Auto-generated method stub return true; } }
package com.bawei.lian2; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class MySqliteHelper extends SQLiteOpenHelper{ public MySqliteHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL("create table user(id integer primary key autoincrement, ctitle varchar(50))"); db.execSQL("create table good(id varchar(50) , cid varchar(50),ctime varchar(50),ctitle varchar(50),descript varchar(100),picurl varchar(100), title varchar(100),type varchar(50))"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }