package com.bgstation0.android.sample.sca.vb_;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

public class MainActivity extends Activity implements SimpleCursorAdapter.ViewBinder{

	// otB[hÌè`.
	public CustomDBHelper mHlpr = null;	// CustomDBHelperIuWFNgmHlprðnullÉµÄ¨­.
	public SQLiteDatabase mSqlite = null;	// SQLiteDatabaseIuWFNgmSqliteðnullÉµÄ¨­.
	public SimpleCursorAdapter mAdapter = null;	// SimpleCursorAdapterIuWFNgmAdapterðnullÉµÄ¨­.
	public Cursor mCursor = null;	// CursorIuWFNgmCursorðnullÉµÄ¨­.
	
	// Activityª¶¬³ê½Æ«.
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // ListViewÌæ¾.
        ListView listView1 = (ListView)findViewById(R.id.listview1);	// listView1ðæ¾.
        
        // DBÖÌsÌ}ü.
        mCursor = null;	// mCursorÉnullðZbg.
        try{
        	if (mHlpr == null){	// mHlprªnullÈç.
        		mHlpr = new CustomDBHelper(getApplicationContext());	// mHlprì¬.
        		if (mSqlite == null){	// mSqliteªnullÈç.
        			mSqlite = mHlpr.getWritableDatabase();	// mSqliteæ¾.
        			if (mSqlite != null){	// mSqliteªæ¾Å«êÎ.
        				// }ü.
        				ContentValues values1 = new ContentValues();	// values1Ì¶¬.
        				values1.put("name", "Taro");	// L[ª"name", lª"Taro".
        				values1.put("age", "20");	// L[ª"age", lª"20".
        				long i = mSqlite.insert("custom", null, values1);	// }ü.
        				ContentValues values2 = new ContentValues();	// values2Ì¶¬.
        				values2.put("name", "Jiro");	// L[ª"name", lª"Jiro".
        				values2.put("age", "18");	// L[ª"age", lª"18".
        				long i2 = mSqlite.insert("custom", null, values2);	// }ü.
        				ContentValues values3 = new ContentValues();	// values3Ì¶¬.
        				values3.put("name", "Saburo");	// L[ª"name", lª"Saburo".
        				values3.put("age", "16");	// L[ª"age", lª"16".
        				long i3 = mSqlite.insert("custom", null, values3);	// }ü.
        				// Ið.
        				String[] projection = new String[]{
        						"_id", // ID.
        						"name",	// ¼O.
        						"age" // Nî.
        				};
        				mCursor = mSqlite.query("custom", projection, null, null, null, null, "age desc");	// NGÊðmCursorÉi[.
        				mAdapter = new SimpleCursorAdapter(this, R.layout.list_item, mCursor, new String[]{"name", "age"}, new int[]{R.id.list_item_name, R.id.list_item_age}, 0);	// SimpleCursorAdapterIuWFNgmAdapterÌ¶¬.
        				mAdapter.setViewBinder(this);	// thisðZbg.
        				listView1.setAdapter(mAdapter);	// listView1ÉmAdapterðZbg.
        			}
        		}
        	}	
        }
        catch (Exception ex){	// áO.
        	Log.e("SimpleCursorAdapter_", ex.toString());	// ex.toStringðLogÉoÍ.
        }
        finally{	// K{
        	if (mSqlite != null){	// mSqliteª êÎ.
        		mSqlite.close();	// Â¶é.
        		mSqlite = null;	// nullðZbg.
        	}
        	if (mHlpr != null){	// mHlprª êÎ.
        		mHlpr.close();	// Â¶é.
        		mHlpr = null;	// nullðZbg.
        	}
        }
        
    }
    
    // Activityªjü³ê½Æ«.
    protected void onDestroy() {	// onDestroyÌè`
    	
    	// eNXÌ
    	super.onDestroy();	// super.onDestroyÅeNXÌùè.
    	
    	// J[\ðÂ¶é.
    	if (mCursor != null){	// mCursorª êÎ.
    		mCursor.close();	// Â¶é.
    		mCursor = null;	// nullðZbg.
    	}
    	
    }
    
    @Override
	public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
		// TODO Auto-generated method stub
		// Jª1ÔÚ©Ç¤©.(_idª0ÔÚ.)
		if (columnIndex == 1){	// 1ÔÚ.(name)
			int color = getResources().getColor(android.R.color.holo_red_light);	// ÔÌcoloræ¾.
			((TextView)view).setTextColor(color);	//viewÉZbg.
		}
		else{	// 1ÔÚÈO.(age)
			int color = getResources().getColor(android.R.color.holo_blue_light);	// ÂÌcoloræ¾.
			((TextView)view).setTextColor(color);	//viewÉZbg.
		}
		return false;
	}
    
}