3.RecordDaoItemクラス/list_search_itemメソッド 詳細

Android開発に関するメモランダム

カテゴリー: 日記アプリ  閲覧数:430 配信日:2014-01-14 17:14


・SQLiteDatabaseオブジェクトを取得(読込み用にデータベースをオープン)
SQLiteDatabase db = helper.getReadableDatabase();//SQLiteOpenHelperクラスのメソッド。SQLiteDatabaseオブジェクトを取得(読込み用にデータベースをオープン)


・検索する条件を設定
  // 検索する条件を設定
  // RecordItemクラスのゲッターメソッド利用
//
String searchNikki = RecordItem.getItemSearchNikki(); //服(検索キーワード)
String searchNen = RecordItem.getItemSearchNen(); //2014
String searchTuki = RecordItem.getItemSearchTuki(); //1
String searchHi = RecordItem.getItemSearchHi();

   // where句の条件
if( searchWord == true ){ //itemnikki like '%服を% ※初回はfalse。
if( searchNikki.length() > 0 ){ //実体はRecordItemクラスのStringプロパティitemsearchnikki。デフォルトnull
searchCulmn = (RecordItem.COLUMN_ITEMNIKKI + " like '%" + searchNikki + "%' ").toString();
}
}
else{ //nen = '2014' AND tuki = '1' ;
if( searchHi == null ){ //実体はRecordItemクラスのStringプロパティitemsearchhi。デフォルトnull
searchCulmn = RecordItem.COLUMN_ITEMNEN + " = '" + searchNen + "' AND " +
             RecordItem.COLUMN_ITEMTUKI + " = '" + searchTuki + "' ";
}
else {
searchCulmn = RecordItem.COLUMN_ITEMNEN + " = '" + searchNen + "' AND " +
             RecordItem.COLUMN_ITEMTUKI + " = '" + searchTuki + "' AND " +
                         RecordItem.COLUMN_ITEMHI + " = '" + searchHi + "' ";
}
}


・where句の条件を得たら検索
rawQueryメソッド
       // where句の条件を得たら検索 
try {
String query = null;

query = "select * " +
                   " from " + RecordItem.TABLE_NAME_ITEM +
                   " where " + searchCulmn + ";";
// "select *  from tbl_androidstylesystem where nen = '2014' AND tuki = '1' ;"
// "select *  from tbl_androidstylesystem where itemnikki like '%服を%' ;"
Cursor cursor = db.rawQuery(query, null);


・クラス型オブジェクト(ユーザー定義クラスRecordItemのオブジェクト)を格納するリストitemListを生成
			itemList = new ArrayList<RecordItem>(); //クラス型オブジェクト(ユーザー定義クラスRecordItemのオブジェクト)を格納するリストitemListを生成

※上記参照

・cursorオブジェクトデバッグ
cursor	SQLiteCursor  (id=830060762464)	
mClosed false
mColumnNameMap null
mColumns String[5]  (id=830060762824)
[0] "_id" (id=830060762864)
[1] "itemnikki" (id=830060762928)
[2] "nen" (id=830060763000)
[3] "tuki" (id=830060763064)
[4] "hi" (id=830060763128)
mContentObservable ContentObservable  (id=830060762632)
mContentResolver null
mCount -1
mCurrentRowID null
mCursorState 0
mDatabase SQLiteDatabase  (id=830060758136)
mDataSetObservable DataSetObservable  (id=830060762584)
mDriver SQLiteDirectCursorDriver  (id=830060761768)
mEditTable null
mInitialRead 2147483647
mLock null
mMaxRead 2147483647
mNotificationHandler null
mNotifyUri null
mPendingData false
mPos -1
mQuery SQLiteQuery  (id=830060762344)
mRowIdColumnIndex 0
mSelfObserver null
mSelfObserverLock Object  (id=830060762680)
mSelfObserverRegistered false
mStackTraceElements null
mUpdatedRows HashMap  (id=830060762696)
mWindow null
itemList ArrayList  (id=830060763184)


・検索結果の先頭レコードにカーソルを移動し、リストへデータ追加
			cursor.moveToFirst(); //検索結果の先頭レコードにカーソルを移動
while( !cursor.isAfterLast()){
itemList.add( getItem( cursor ) );
cursor.moveToNext();
}
} finally {
db.close();
}
//itemList ArrayList  (id=830060748640)
//[0] RecordItem  (id=830060751240) … DBより取得した該当レコード
// itemhi "18" (id=830060752528)
// itemnen "2014" (id=830060751336)
// itemnikki "服を買う" (id=830060751272)
// itemtuki "1" (id=830060751400)
// rowid 3

return itemList;
}


週間人気ページランキング / 2-16 → 2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新
指定期間人気ページランキング / 1970-1-1 → 2025-2-22
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2025/2/23 1:01 更新