起動処理の流れ2

アプリ ソースコード日記アプリ

ここまでの流れ

 状態:学習中  閲覧数:892  投稿日:2014-01-20  更新日:2014-01-26
1.起動時、「レコード情報」オブジェクト生成
・ActivityTopクラス、onCreateメソッド → 「RecordItemクラス」のインスタンスオブジェクト生成

2.画面表示時、「バックグラウンド処理」オブジェクト生成
・ActivityTopクラス、onResumeメソッド → 「DataLoadTaskクラス」のインスタンスオブジェクト生成

3.バックグラウンド処理開始
・RecordDaoItemクラス、list_search_itemメソッド → 「ユーザー定義クラスRecordItemのオブジェクト」を格納するリストitemListを生成し、返す

起動処理の流れ1

2.DataLoadTaskクラス … doInBackground()メソッドの残り

 閲覧数:412 投稿日:2014-01-10 更新日:2014-01-23

doInBackground()メソッド


doInBackground()メソッドの残り
RecordDaoItemクラスのlist_search_itemメソッド呼出
		//バックグラウンドで実行させたい処理
@Override
protected List<RecordItem> doInBackground(Object... params) {
           // 一覧を呼び出し
RecordDaoItem dao = new RecordDaoItem(ActivityTop.this); //インナークラス内で、新たなクラスのインスタンスオブジェクト生成

return dao.list_search_item( Record ,isWordSearch );


第1引数 … Record
・ActivityTopクラスのonCreateメソッドに記述
・RecordItemクラスのインスタンスオブジェクト

第2引数 … isWordSearch
・ActivityTopクラスのonCreateメソッドに記述
・起動時の1発目は日付で一覧を取得する為、falseに設定

3.RecordDaoItemクラス/list_search_itemメソッド … リストの流れ

 閲覧数:498 投稿日:2014-01-11 更新日:2014-01-17

検索メソッド


・RecordDaoItemクラスの検索メソッド「list_search_item」
//
// 検索
//
public List<RecordItem> list_search_item(RecordItem record, boolean searchWord ) { //第1引数。RecordItemクラスのインスタンスオブジェクト。第2引数。真偽値。日付で一覧を取得する場合はfalse
SQLiteDatabase db = helper.getReadableDatabase();

List<RecordItem> itemList;
String searchCulmn = null;

// 検索する条件を設定
String searchNikki = RecordItem.getItemSearchNikki();
String searchNen = RecordItem.getItemSearchNen();
String searchTuki = RecordItem.getItemSearchTuki();
String searchHi = RecordItem.getItemSearchHi();

if( searchWord == true ){
if( searchNikki.length() > 0 ){
searchCulmn = (RecordItem.COLUMN_ITEMNIKKI + " like '%" + searchNikki + "%' ").toString();
}
}
else{
if( searchHi == 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句の条件を得たら検索
try {
String query = null;

query = "select * " +
                   " from " + RecordItem.TABLE_NAME_ITEM +
                   " where " + searchCulmn + ";";

Cursor cursor = db.rawQuery(query, null);

itemList = new ArrayList<RecordItem>();




0.パッケージ


必要パッケージを読み込む
・リストを使うには、ソースファイル最初の方に以下のimport文が必要
完全限定名利用
import java.util.ArrayList;
import java.util.List;



1.リスト生成


・RecordDaoItemクラス内にある「検索をするlist_search_itemメソッド」の中で、クラス型オブジェクト(ユーザー定義クラスRecordItemのオブジェクト)を格納するリストitemListを生成
List<RecordItem> itemList;

itemList = new ArrayList<RecordItem>();

List<データ型> リストの名前 = new ArrayList<データ型>();
・リスト生成では、格納するデータ型とリストの名前を指定
・サイズの指定は必須ではない
※List<データ型>の「List」は参照型(オブジェクト型)変数のインタフェース型(Listインターフェイス)を意味する


2.リストへデータを追加


2-1.リストの名前と追加するデータを指定
2-2.追加のたびに、データがリスト末尾に追加され、リストのサイズが1増える
リストの名前.add( データ );

・「検索をするlist_search_itemメソッド」の中で、リストitemListへデータを追加する
			while( !cursor.isAfterLast()){
itemList.add( getItem( cursor ) );
cursor.moveToNext();
}


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

 閲覧数:378 投稿日:2014-01-14 更新日:2014-01-18
・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;
}



起動処理の流れ1



週間人気ページランキング / 5-12 → 5-18
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/5/19 1:01 更新