月別(トップ)画面仕様

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

仕様

 状態:確認中  閲覧数:1,120  投稿日:2013-09-19  更新日:2013-10-09
アプリ起動時の初期画面 … ▼/ActivityTop.java
・現在月の日記の一覧を表示
・一覧からタップされたレコードの参照画面に遷移
・今日の日記を追加ボタンで新規登録画面に遷移
・先月ボタンで一ヶ月前の一覧を表示
・翌月ボタンで一ヶ月後の一覧を表示
・検索文字を入力して検索ボタンで検索文字を含む一覧を表示

処理の流れ

 閲覧数:359 投稿日:2013-09-20 更新日:2013-10-03

プログラムの流れ


1.プロパティ
・リソースを割り当てる為の変数を宣言

2.onCreateメソッド

2-1.レイアウトファイルを指定


2-2.変数にコンテキスト上にあるリソースを割り当てる


2-3.Listenerを登録して動作をプログラム



3.onResumeメソッド
・データベースへアクセスし、一覧データの取得と表示を行う

4.アクティビティ
・「実行中」の状態になる
※アクティビティ「実行中」=そのアクティビティの「onResumeメソッド」処理は既に終了している
「アクティビティが開始」するとAndroid側は予め定義されている「onCreate()」メソッド、「onStart()」メソッド、「onResume()」メソッドを順番に呼び出し、その中でActivityの画面が作成表示され、「実行中」の状態になる


1.プロパティ

 閲覧数:350 投稿日:2013-09-23 更新日:2013-10-03

プロパティ


リソースを割り当てる為の(インスタンス)変数を、プロパティとして宣言
・操作したいItem(テキストビュー、EditText、ボタン)
・カレンダークラスのインスタンス
・一覧表示用ListViewクラスのインスタンス
・Toast制御

2.onCreateメソッド

 閲覧数:368 投稿日:2013-10-03 更新日:2013-10-05

2-1.レイアウトファイルを指定


レイアウトファイル指定
setContentView(R.layout.top);

・これ以降のコード内容を、「▼/res/layout/top.xml」へセット


2-2.リソースを割り当て


変数にコンテキスト上にあるリソースを割り当てる
    	/* どのItemを操作するのかリソースを割り当て */
       tv_last = (TextView)findViewById(R.id.TextView_last_month);//先月
       tv_date = (TextView)findViewById(R.id.TextView_date);//2013/9
       tv_next = (TextView)findViewById(R.id.TextView_next_month);//翌月
       et_search = (EditText)findViewById(R.id.EditText_top_search);//編集
       btn_top_search = (Button)findViewById(R.id.Button_top_search);//検索
       btn_top_add = (Button)findViewById(R.id.Button_top_add);//今日の日記を書く
       all = (LinearLayout)findViewById(R.id.LinearLayout_all);//画面全体LinearLayout
listView = (ListView)findViewById( R.id.ListView_searchlist );//フッター検索部分リストビュー



1-2.ArrayAdapter

 閲覧数:510 投稿日:2013-10-03 更新日:2018-06-15

1.ジェネリックな型変数を宣言


プロパティにて、ジェネリックな型の変数を宣言
	/* 一覧表示用ListView */
private ListView listView = null;
private ArrayAdapter<RecordItem> arrayAdapter = null;

・private ArrayAdapter<RecordItem>のRecordItemは「仮型引数」と呼ばれる


2-2.データ表示領域を用意


・listデータ表示領域を取得
		listView = (ListView)findViewById( R.id.ListView_searchlist );//フッター検索部分リストビュー



2-3.オブジェクト生成


ArrayAdapterクラスのオブジェクト生成
arrayAdapter = new ArrayAdapter<RecordItem>(this,R.layout.listview);
listView.setAdapter(arrayAdapter);

・newする際の「new ArrayAdapter<RecordItem>();」
・この<RecordItem>が、型変数宣言したArrayAdapter型の「型変数RecordItem」にバインドされる
・new ArrayAdapter<RecordItem>のRecordItemは「実型引数」と呼ばれる
型変数へのバインド


※この時点でデータの中身は空。実際に取得するのは、これ以降

3.onResumeメソッド

 閲覧数:467 投稿日:2013-10-05 更新日:2013-10-14

AsyncTask


・比較的重たい処理となる「データベース問い合わせ、一覧データ取得・表示」は、メインスレッド(UI thread)に負荷を与えずに行うため、AsyncTaskクラスを継承した「DataLoadTask」クラスで実施


3-1.AsyncTaskクラス作成


AsyncTaskクラスを継承したクラスを作成
・Generics指定(引数の型を指定)
public class DataLoadTask extends AsyncTask<Object, Integer, List<RecordItem>> {


第1引数(実行時引数) … Object
・java.lang.Object

第2引数(進捗単位) … Integer
・java.lang.Integer

第3引数(処理結果) … List<RecordItem>
・java.util.List<android.style.systemdb.RecordItem>


3-2.メソッド実装


doInBackground … メイン処理(=バックグラウンドで非同期に実行させたい処理)]
「データベース操作クラス」のインスタンス生成
・「データベース操作クラス」の検索メソッド実行
・検索結果を返す
		@Override
protected List<RecordItem> doInBackground(Object... params) {
           /* 一覧を呼び出し */
RecordDaoItem dao = new RecordDaoItem(ActivityTop.this);

return dao.list_search_item( Record ,isWordSearch );
}


onPostExecute … スレッドが終了した後に呼ばれる
※引数resultは、先のdoInBackground()でreturnしたオブジェクト。ここでは検索結果一覧
		protected void onPostExecute(List<RecordItem> result) {

・表示日付を更新
・現在の一覧表示をクリア
			arrayAdapter.clear();

・一覧表示のデータ設定 … 検索結果を、拡張for文を利用して、arrayAdapterインスタンスに追加
            /* 一覧表示のデータを設定 */
for (RecordItem item : result) {
arrayAdapter.add(item);
if( item.getItemNen().equals(String.valueOf(year))
&& item.getItemTuki().equals(String.valueOf(month))
&& item.getItemHi().equals(String.valueOf(day)) ){
btn_top_add.setVisibility(View.GONE);
}
}



現在の疑問

方針変換 … 1から作成



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