package com.example.love_reading; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.example.love_reading.MainActivity.MyAdapter; import com.example.love_reading.MainActivity.ViewHolder; import com.example.love_reading.R.id; import com.example.love_reading.sql.SQLiteHelper; import com.example.love_reading.sql.SQLiteHelper2; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; public class Bookplan extends Activity { private List<Map<String, Object>> mData; private Cursor cursor; private int i; private String tag = Bookplan.this.getClass().getSimpleName(); private TextView bookplan_title; private ListView bookplan_list; private SQLiteDatabase db; private SQLiteHelper2 dbHelper; public static final String DB_NAME = "bookplan.db"; public static int DB_VERSION = 1; private File path = new File("/sdcard/love_reading");// ����Ŀ¼ private File f = new File("/sdcard/love_reading/bookplan.db");// �����ļ� private MyAdapter adapter; private Intent intent; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.bookplan); bookplan_title=(TextView)findViewById(R.id.bookplan_title); intent=getIntent(); bookplan_title.setText(intent.getStringExtra("name")+"���Ķ���¼"); Log.i(tag, intent.getStringExtra("name")); createData(); init(); setlistener(); } public void setlistener() { bookplan_list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub getall(arg2); } }); } private void getall(int arg2) { try { dbHelper = new SQLiteHelper2(this, DB_NAME, null, DB_VERSION); db = SQLiteDatabase.openOrCreateDatabase(f, null); /* ��ѯ���õ�cursor���� */ cursor = db.rawQuery("select * from bookplan where _id='"+(arg2+1)+"'", null); cursor.moveToFirst(); if (!cursor.isAfterLast() && (cursor.getString(10) != null)) { Log.i(tag, "ssss:"+cursor.getString(10)); Intent intent2 = new Intent(Bookplan.this, Booksummary.class); intent2.putExtra("summary", cursor.getString(10)); startActivity(intent2); } else { Toast.makeText(this, "���Ķ���¼�޸���", Toast.LENGTH_SHORT).show(); } } catch (IllegalArgumentException e) { e.printStackTrace(); ++DB_VERSION; dbHelper.onUpgrade(db, --DB_VERSION, DB_VERSION); } } private void init() { bookplan_list = (ListView) findViewById(R.id.bookplan_list); mData = gettp(); adapter = new MyAdapter(this); bookplan_list.setAdapter(adapter); } private List<Map<String, Object>> gettp() { BitmapDrawable bd; List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); Map<String, Object> map; try { dbHelper = new SQLiteHelper2(this, DB_NAME, null, DB_VERSION); db = SQLiteDatabase.openOrCreateDatabase(f, null); /* ��ѯ���õ�cursor���� */ cursor = db.rawQuery("select * from bookplan where name='"+intent.getStringExtra("name")+"'", null); cursor.moveToFirst(); Log.i(tag, "show"); i=0; while (!cursor.isAfterLast() && (cursor.getString(1) != null)) { map = new HashMap<String, Object>(); map.put("name",cursor.getString(1)); map.put("startpage",cursor.getInt(2)); map.put("endpage",cursor.getInt(3)); map.put("year",cursor.getInt(4)); map.put("month",cursor.getInt(5)); map.put("date",cursor.getInt(6)); map.put("hour",cursor.getInt(7)); map.put("minute",cursor.getInt(8)); map.put("second",cursor.getInt(9)); map.put("summary",cursor.getString(10)); list.add(map); cursor.moveToNext(); } } catch (IllegalArgumentException e) { e.printStackTrace(); ++DB_VERSION; dbHelper.onUpgrade(db, --DB_VERSION, DB_VERSION); } return list; } private void createData() { if (!path.exists()) {// Ŀ¼���ڷ���false path.mkdirs();// ����һ��Ŀ¼ } if (!f.exists()) {// �ļ����ڷ���false try { f.createNewFile();// �����ļ� } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } try { dbHelper = new SQLiteHelper2(this, DB_NAME, null, DB_VERSION); db = SQLiteDatabase.openOrCreateDatabase(f, null); StringBuilder sql = new StringBuilder(); sql.append("CREATE TABLE IF NOT EXISTS ").append(SQLiteHelper2.TB_NAME).append(" (").append("_id integer primary key autoincrement,") .append("name text,").append("startpage integer,").append("endpage integer,").append("year integer,").append("month integer,").append("date integer,") .append("hour integer,").append("minute integer,").append("second integer,").append("summary text") .append(")"); db.execSQL(sql.toString()); } catch (IllegalArgumentException e) { e.printStackTrace(); ++DB_VERSION; dbHelper.onUpgrade(db, --DB_VERSION, DB_VERSION); } db.close(); } public final class ViewHolder{ public TextView name; public TextView startpage; public TextView endpage; public TextView time; public TextView summary; } public class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater; public MyAdapter(Context context){ this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { // TODO Auto-generated method stub return mData.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder=new ViewHolder(); convertView = mInflater.inflate(R.layout.list_item, null); holder.name = (TextView)convertView.findViewById(R.id.name); holder.startpage = (TextView)convertView.findViewById(R.id.startpage); holder.endpage = (TextView)convertView.findViewById(R.id.endpage); holder.time = (TextView)convertView.findViewById(R.id.time); convertView.setTag(holder); }else { holder = (ViewHolder)convertView.getTag(); } holder.name.setText(" "+(String)mData.get(position).get("name")+" "); holder.startpage.setText(" "+mData.get(position).get("startpage")+" "); holder.endpage.setText(" "+mData.get(position).get("endpage")+" "); holder.time.setText(" "+mData.get(position).get("year")+"-"+mData.get(position).get("month")+"-"+mData.get(position).get("date")+" "+mData.get(position).get("hour")+":"+mData.get(position).get("minute")+":"+mData.get(position).get("second")+" "); return convertView; } } }