dialog()の主なパラメータ

dialog()の主なパラメータ
width

height
高さ
autoOpen
ダイアログを自動的に開く
model
モーダルダイアログにするか選択
falseなら
モードレスダイアログになる
show
ダイアログを開くときのアニメーション効果
hide
ダイアログを閉じるときのアニメーション効果
buttons
ダイアログで表示するボタン
ちなみに、buttonsパラメータは
ハッシュによる追加で
ボタン名と
クリック時の処理を設定できる
コードにすると
buttons:{
ボタン名:function(){クリックしたときの処理},
….
}
という構文
例えば、よく見かける
ダウンロードか、閉じるという画面ダイアログなら
buttons:{
‘ダウンロード’,function(){
location.href=’http://jquery.com/download’;},
‘閉じる’,function(){
$(this).dialog(‘close’);
}
これで、ダウンロードがクリックされたら
URLに移動され
閉じるがクリックされたら
ダイアログが閉じるようになる
jQueryUIでは
メソッドに特定のキーワードを渡すことで
あらかじめ決められた処理を行える
例えば
$(this).dialog(‘close’);
なら
現在のダイアログになる
$(this)

閉じるという意味になる 
closeは閉じるという意味

モーダルダイアログにつて

モーダルダイアログ
モーダルダイアログは
その画面を閉じるまで
その他の動作ができなくなるダイアログのこと
これは、ライセンス確認画面とかで使ったりします
モーダルダイアログは
一般的にdiv要素で定義します

ダイアログの内容

というかんじ
重要なのは
jQueryUIから操作できるように
id属性の明記と
title属性にタイトルをつけてタイトルバーに表示すること
これができたら
モーダルダイアログの機能を適用
これには
dialog()
を使う
dialog()の構文は
$(ダイアログを示すセレクタ).
dialog({
パラメータ名:値,
….
})
サンプルにすると
$(‘#dialog’).dialog({
width:600,
….
});
となります
ダイアログを表示する様々な機能は
{
パラメータ名:値,
….
}
というハッシュ形式で指定
ハッシュはjQueryUIや
ほかの様々なjQueryプラグインで多用するので覚えておくと便利です

jQueryUIの利用

jQueryUIの利用
jQueryUIは
jQueryにより動くライブラリなので
先にjQueryを読み込まないとダメ
つまり、コードは上から実行されるから
先に
jquery-バージョン.min.js
を、書いてから
jquery-ui-バージョン.min.js
を書くこと
あとは以下のようなコードで
jQueryUIを呼び出せばok
構文は
$(UIの適用先セレクタ).機能名(パラメータ,…)

ファイルへの保存について

ファイルへの保存について
ファイルへのデータ書き込みには
まず
openFileOutput()を使い
FileOutputStreamオブジェクトを取得
openFileOutput()の
第1引数にはアクセスしたいファイル名
第2引数に処理モード定数を設定
ファイル処理モード定数は
MODE_PRIVATE
他のアプリからアクセス不可
MODE_WORLD_READABLE
他のアプリから読み込み可
MODE_WORLD_WRITABLE
他のアプリから書き込み可
MODE_APPEND
既存ファイルに追加書き込み
プリファレンスとほほ同じだけど
既存ファイルに追加書き込みできる
MODE_APPENDが増えている
定数とかの設定ができたら
書き込み処理をする FileOutputStreamオブジェクトを引数にして
BufferedWriterクラスのオブジェクトを生成
このBufferedWriterオブジェクトの
write()に
書き込みたいデータを文字列で渡し
ファイルに出力
newLine()
を使えば改行を入れることができる
最後に
close()
でバッファにたまっている出力データを
ファイルに書き込み、ファイルを閉じる
ファイルからのデータ読み込みは
openFileInput()
を使い
FileInputStreamオブジェクトを取得
そのFileInputStreamオブジェクトを引数にして
読み込み処理を行う InputStreamWriteクラスの
オブジェクトを生成
生成したInputStreamWriteオブジェクトを
引数にして
BufferedReaderクラスのオブジェクトを生成する
そして
BufferedReaderの
readLine()を使って
バッファに取り込まれたデータを
1行ずつ読み込む
ファイルデータの削除には
deleteFile()
を使う
deleteFile()で
ファイルのデータが全て削除される
ファイルの読み込み、書き込み、削除には
全て例外処理が必要なため、
try{
処理
}catch()
例外処理
}
というように処理の記述が必要

プリファレンスの利用

プリファレンスの利用
プリファレンスを利用するには
プリファレンスにアクセスするためのメソッドを提供するインターフェース
SharedPreferencesの
オブジェクトを取得する必要がある
SharedPreferencesオブジェクトは
Contextクラスの
getSharedPreferences()
で取得する
この第1引数に
アクセスしたいファイル名
第2引数に
処理モードの定数を設定する
プリファレンスの処理モード定数は
MODE_PRIVATE
他のアプリからアクセス不可
MODE_WORLD_READABLE
他のアプリから読み込み可
MODE_WORLD_WRITABLE
他のアプリから書き込み可
データの書き込み、変更、削除には
SharedPreferences.Editorクラスのインスタンスを
SharedPreferencesの
edit()で取得
データの保存には
SharedPreferences.Editorオブジェクトの
putString()に
保存するデータのキーと値を設定し
commit()

プリファレンスファイルに保存する
putString()は
第1引数にキー
第2引数に保存する値を設定
putString()のほかにも
putInt()
putLong()
putFloat()
putBoolean()
があるので、保存したいデータ型により使い分けができる
SharedPreferencesオブジェクトを取得したあと
SharedPreferencesオブジェクトの
getString()
でデータ取得
getString()の
第1引数に取得したいデータのキー
第2引数にデータが取得できなかった場合の値
を設定
プリファレンスファイルのデータを全て削除したいなら
SharedPreferences.Editorクラスの
clear()を使う
これは
SharedPreferencesオブジェクトや
SharedPreferences.Editorオブジェクトを取得したあと
clear()を実行する
全部ではなく
指定したデータのキーだけ削除したいなら
remove()を使う
これは
引数にキーを指定する
データを保存するときと同じように
削除するときにも
commit()を実行するのを忘れないように注意

プリファレンスについて

プリファレンスについて
プリファレンスは
javaのMapインターフェースのように
データとキーを組み合わせて保存する
保存データは
/data/data/パッケージ名/shared_prefs
というディレクトリに
ファイル名.xml
という名前のXMLファイルで保存する
このXMLファイルが
プリファレンスファイル
プリファレンスは
データ量やデータ形式に制限があるため
いくつかの設定値の簡易保存などに、使われる

Androidでのデータ保存

データ保存
Androidでは5つのデータ保存方法がある 
プリファレンス
端末内部の記憶媒体に
キーと値の組み合わせで保存
ファイル
端末内部の記憶媒体に保存
データベース
デフォルトで搭載されているSQLite DBへ保存
外部メディア
SDカードなどに保存
ネットワーク上のサーバー
そのままの意味
クラウドに保存
Dropboxとかがこれにあたる

バインドを使わないサービス

バインドを使わないサービス
まず、サービスクラスを準備する
サービスクラスは
android.app.Service抽象クラスを継承して定義する
ソースにすると
extends Service
サービスクラスのイベントハンドラは以下のとおり
onCreate
初めてサービスが起動したとき呼ばれる
複数サービス起動の場合は初回だけ呼ばれる
onStart
startService()でサービス開始のとき呼ばれる
onBind
bindService()でサービス開始のとき呼ばれる
onUnbind
サービスのバインドを解除するとき呼ばれる
onRebind
サービスと再度バインドするとき呼ばれる
onDestroy
停止状態から破棄される直前に呼ばれる
注意点としては
バインドを使わなくても
onBind()の実装はなぜか必須ということ
そして、AndroidManifest.xmlに
serviceタグの設定が必要

Androidのサービス機能

Androidでのサービス機能は
画面を持たず、バックグラウンドで独立して動作するプログラム
これはLinuxのサーバーのようなもの
この機能を使えば、
長いダウンロード処理とか
音楽再生などを画面処理から切り離して動作させられる
例えば、音楽を聞きながらWebブラウザー閲覧などができるようになる
サービスの実装方法は2つ
startService()を使う方法
バインドを使う方法
まず、startService()から
これは
アクティビティやサービスから
サービスを呼び出す方法
Activityクラスの
startService()でサービス起動
stopService()でサービス停止
一番簡単な実装方法だが
欠点として
アクティビティから行えるのは
サービスの起動と停止のみ
もうひとつのバインドについて
こちらは
アクティビティとサービスを明示的に
結びつけることで
サービスの起動/停止だけでなく
アクティビティとサービスの相互操作が可能
アクティビティとサービスをバインドするには
アクティビティとサービスのの両方に
AIDLファイルを用意する
AIDLは
Android
Interface
Definition
Language
の略
このAIDLファイルに定義した
インターフェースを使うことで
アクティビティとサービスが互いにやりとりできるようになる