Androidでボタンの設定

Androidでボタンの設定

ボタンを使うには、レイアウトファイルでButtonを設定して

クリックイベントとして
setOnClickListenerをセットすることで動作設定する

レイアウトファイルで
onClick=””
で設定してもいいけど、欠点として
コードの難読化するProGuardを使うと
クリックイベントが取得できなくなる

設定ファイルをカスタマイズすれば回避できるけど、
onClickより
setOnClickListenerのほうが無難

まずは、レイアウトファイルでボタンを配置

ソースは

<Buttonbr>android:id="@+id/button"<br clear="none"></br>
android:layout_width="wrap_content"<br clear="none"></br>
android:layout_height="wrap_content"<br clear="none"></br>
android:layout_centerInParent="true"<br clear="none"></br>
android:text="button"/><br clear="none"></br>

android:layout_centerInParent=””
は、
http://wikiwiki.jp/android/?UI%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8%2FRelativeLayout.LayoutParams
の解説にあるように
親の水平方向の中央に配置する設定

これでボタンができたので
つぎはJavaで動作を設定

Button btn = (Button)findViewById(R.id.button);

btn.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v){
Toast.makeText(MainActivity.this, "ボタンテスト",Toast.LENGTH_SHORT).show();
}
});

でボタンを押したらトースト表示する

Serviceクラスについて

Serviceクラスについて

サービスは、ユーザーと対話せずにアプリが要求する長時間の処理を実行したり
他のアプリが、使用するための機能を提供するアプリコンポーネントのこと

サーバみたいなものと考えるとわかりやすい

各サービスのクラスには
そのpackageの
AndroidManifest.xmlに対応する
宣言を持っている必要がある

サービスは、Context.startService()
または
Context.bindService()
で開始できる

サービスは、他のアプリのオブジェクト同様
ホストプロセスのメインスレッドで実行される

これは、サービスがどのようなCPUを集中的に使用するか
例えばMP3再生とか
または、ブロッキング(ネットワーキング)
などの操作をする場合、
その仕事を行うための独自スレッドを持っているサービスの標準的な実装として提供される

サービス作成の詳細は、
http://developer.android.com/guide/components/services.html
を参考に

AndroidでProgressBarの利用

AndroidでProgressBarの利用

ProgressBarは、読み込みしてるときに
グルグル回るリングみたいなのとか
ダウンロードしているときに、何%
とか表示されるバーのこと

主に読み込みとか、ダウンロードなど、どれぐらい進んでいるかを示すために使う

パソコンみたいに
ダウンロードとかで水平バーを使うなら
style=””

?android:attr/progressBarStyleHorizontal
を指定する

リングタイプを使うなら
3種類から選ぶことになる

それぞれ
?android:attr/progressBarStyleSmall

?android:attr/progressBarStyle

?android:attr/progressBarStyleLarge

と大きさの違いで使い分ける

とりあえず、
水平バー
小さいリングタイプ
普通の大きさのリングタイプ
大きなリングタイプ
でレイアウトファイルで設定

ソースコードは

<progressBar
android:id="@+id/horizontal"
style="?android:attr/progressBarStyleHorizontal"
android:layout_height="wrap_content"
android:indeterminate="false"/>

android:indeterminate=”false”

http://wavetalker.blog134.fc2.com/blog-entry-34.html
の解説を参考にさせていただきました

どうやらtrueにすると
progressBarがグルグル回るようです

<progressBar
android:id="@+id/small"
android:layout_height="fill_parent"
style="?android:attr/progressBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:indeterminate="false"/>

<progressBar
android:id="@+id/progressbar"
style=?android:attr/progressBarStyle""
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"/>

<progressBar
android:id="@+id/large"
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"/>

あとは、Javaで制御

水平バーの場合、
setMax()で最大値
setProgress()で主進捗
setSecondlyProgress()で副進捗
を設定

ProgressBar progressBar = (ProgressBar)findViewById(R.id.horizontal);
progressBar.setMax(100);
progressBar.setProgress(30);
progressBar.setSecondlyProgress(70);

というようになる

Android API level 16 で追加された定数

Android API level 16 で追加された定数

public int DEFAULT_KEYS_DIALER
デフォルトのキー処理中にダイヤラを起動するため
setDefaultKeyMode(int)で使う

public int DEFAULT_KEYS_DISABLE
キーの規程の処理をOFFにするため
setDefaultKeyMode(int)で使う

public int DEFAULT_KEYS_SEARCH_GLOBAL
処理されていないストロークがグローバル検索を許可することを指定するために
setDefaultKeyMode(int)
で使う
通常は、Web検索だけど
一部プラットフォームでは、グローバル検索のための代替メソッドを定義できる

public int DEFAULT_KEYS_SEARCH_LOCAL
処理されていないストロークがアプリ定義の検索開始することを指定するために
setDefaultKeyMode(int)で使う
アプリやActivityが検索に定義してないと
キーは無視される

public int DEFAULT_KEYS_SHORTCUT
デフォルトのキー処理において
メニューのショートカットを実行するため
setDefaultKeyMode(int)
で使う

public int RESULT_CANCELLED
標準のActivityの結果で操作がキャンセルされたことを示す

public int RESULT_FIRST_USER
ユーザー定義のActivityの結果の最初の値

public int RESULT_OK
標準のActivityの結果で、操作語成功したことを示す

Android API level 16 で追加されたメソッドその2

Android API level 16 で追加されたメソッドその2

public void startIntentSenderForResult(IntentSender intent, int requestCode, Intent fillInintent, int flagsMask, int flagsValues , int extraFlags, Bundle options)
startActivityForResult(Intent,int)に似てるけど
起動するActivityを記述するために
IntentSenderを使うことができる

IntentSenderがActivityのためなら
startActivityForResult(Intent,int)の呼び出しのように
そのActivityが開始される

それ以外なら
IntentSender.sendIntentを呼び出すように関連付けられたアクション
例えばBroadcastなどが実行される

IntentSender.SendIntentExceptionがスローされる

引数のintentは、起動するためのIntentSender

requestCodeは、0以上ならActivityが終了する際に
startActivityForResult(Intent,int)で説明されている
onActivityResult()内で返される値

fillInIntentは、nullでないなら、Intentのparameterとして
sendIntent(Context,int,Intent,IntentSender.OnFinished,Handler)
に提供される

flagsMaskは、変更したいオリジナルのIntentSenderにあるIntentFlag

flagsValuesは
flagsMaskに設定されている任意のビットの変更したい値

extraFlagsは、常に0

optionsは、どのようにActivityを開始するべきかを示す追加オプション
もし、オプションもIntentSenderにより与えられている場合、上書きされる

public void startIntentSenderFromChild(Activity child, IntentSender intent, int requestCode, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)
startActivityFromChild(Activity,Intent,int,)に似てるけど
こっちは、IntentSenderを取り入れている
IntentSender.SendIntentExceptionをスローする

public boolean startNextMatchingActivity(Intent intent, Bundle options)
他のActivityのコンポーネント置き換えて使うときに、Activityを開始する特別なバージョン

Intentを扱う次のActivityへIntentを手渡すのに使う
通常は、getIntent()で返されるIntentを使い
onCreate(Bundle)の中でこのメソッドを呼び出す

引数のintentは、次のActivityにdispatchするIntent
正しい動作のために、Activityを開始したIntentと同じであること
変更は、そのなかのExtraにある

optionsは、どのようにActivityが開始されるかを示す追加オプション

戻り値は、開始するためのActivityがあるかどうかを示すプール値
開始するための次のActivityがあればtrue
なければfalse

trueなら、その後finish()を呼び出す必要がある

Androidで文字の配置場所の変更

Androidで文字の配置の変更

ボタンやTextViewなどで表示される文字の配置場所を変更するには
android:gravity=””
で設定する

使い方としては
文字を左揃え、中央揃え、右揃えとしたり
上下、中央、左右の好きな場所へ配置するなどなど

なお、配置場所は |
これで区切ることで、組合せを作り
右上とかにすることができる

右上にするなら、上と右の組合せなので
“right|top”
とする

とりあえず、TextViewでそれぞれの例を
レイアウトファイルで書いてみる
 
ちなみに、
layout_width=”wrap_content”
とか
layout_height=”wrap_content”
にすると、幅をあわせてしまうので
たいていは表示する大きさを指定することになる

<TextView
android:id="@+id/text"
android:layout_width="200dip"
android:layout_height="50dip"
android:gravity="left|top"
android:text="左上"/>

<TextView
android:id="@+id/text2"
android:layout_width="200dip"
android:layout_height="50dip"
android:gravity="right|top"
android:text="右上"/>

<TextView
android:id="@+id/text3"
android:layout_width="200dip"
android:layout_height="50dip"
android:gravity="right|bottom"
android:text="右下"/>

<TextView
android:id="@+id/text4"
android:layout_width="200dip"
android:layout_height="50dip"
android:gravity="left|bottom"
android:text="左下"/>

というかんじ

TextView以外にはリスト表示するときとか
画像と合わせて表示するときなどに使える

Android API level 16 で追加された関数のメモ

Android API level 16 で追加された関数のメモ

public void finishAffinity()
このActivityと現在のタスク内で同じ親和性を持っているすべてのActivityを終了する

これは、通常、アプリがコンテンツタイプのACTION_VIEWなどからベツのタスクを起動し
ユーザーが現在のタスクから独自のタスクへ切り替えるためのアップナビゲーションに使われる

このケースでは、 
ユーザーが2つめのアプリの他のActivityへダウンナヒゲートした場合 
タスクの切り替えの一部として
元のアプリのActivityのすべてが
元のタスクから削除かれる必要がある

この終了処理は、前のActivityへ結果を提供できないし、例外がスローされる

public Intent getParentActivityIntent()
このActivityの論理的な親と指定される明示的なターゲットactivityを起動するIntentを取得

論理的な親は、parentActivityName属性によりアプリの
AndroidManifest.xmlで指定される

Activityのサブクラスは、
super.getParentActivityIntent()
により返されるIntentを変更したり
親のIntentを取得する全く別のメカニズムを実装したりするために
このメソッドをOverrideする事ができる

戻り値は、Activityの定義された親を対象にした新しいIntent
有効な親がないならnullになる

public boolean navigateUpTo(Intent upIntent)
プロセス内のこのActivityを終えて
ActivityからupIntentで指定されたActivityへ移動する

Activityは、upIntentにより示されたActivityが履歴スタック内に存在している場合、
履歴スタック内の指定されたActivityの前に、このActivityとほかのすべてが終了となる

指定されたActivityが
履歴スタックにない場合、
in-ap home
という動作の結果として
タスクのroot Activityに達するまで、
このタスク内の各Activityを終了する

これは、Activityが正規の親Activityを通過しない経路で到達される、複雑なナビゲーション階層を持つアプリで役立つ

このメソッドは、移動先と同じタスク内でのアップナビゲーションを実行するときに使う必要がある

アップナビゲーションが複数のケースで、タスク交換の必要があるなら
shouldUpRecreateTask(Intent)
を参照する

引数のUpIntent
これはアップナビゲーションのためのターゲット先を表すIntent

戻り値は、アップナビゲーションがupIntentにより示されたActivityにうまく到達し
upIntentが配信されたときにtrueになる

指定されたActivityのインスタンスが見つからず
このActivityが単に終了した場合
falseになる

public boolean navigateUpToFromChild(Activity child, Intent upIntent)
このActivityの子Activityが
navigateUpTo(Intent)
を呼び出したときに呼ばれる

デフォルト実装は、単にこの親Activityの
navigateUpTo(Intent)を呼び出す

引数のchildは、呼び出しを行うActivity

upIntentは、アップナビゲーションのためのターゲット先を表すIntent

戻り値は、アップナビゲーションがupIntentにより示されたActivityに到達し、Intentが配信されたときにtrue

指定でれたActivityのインスタンスが見つからず
Activityが正常終了した場合はfalse

public void onCreateNavigateUpTaskStack(TaskStackBuilder builder)
別のタスクからのアップナビゲーション中に生成される合成タスクスタックを定義する

このメソッドのデフォルト実装は、
AndroidManifest.xmlへ指定されたActivityの親チェーンを与えられた
TaskStackBuilderに追加する

アプリは別の方法で目的のTaskのStackを構築するため
このメソッドをOverrideできる

getParentActivityIntent()が返却するIntentを与えられたshouldUpRecreateTask(Intent)
がtrueなら
onNavigateUp()のデフォルト実装により呼び出される

AndroidManifest.xmlで定義されている親Stackに
特別なIntentParameterを指定したいアプリは
onPrepareNavigateUpTaskStack(TaskStackBuilder)
をOverrideする必要がある

引数のbuilderは
空のTaskStackBuilder
アプリは、目的のTaskStackを表すIntentを追加する必要がある

public boolean onNavigateUp()
ユーザーがアクションバーからアプリのActivity階層内で
上に移動することを選択するたび
このメソッドが呼び出される

parentActivityName属性がAndroidManifest.xml内で
このActivityやActivity aliasのために指定されている場合、
デフォルトのアップナビゲーションは
自動的に処理される

親チェーンに沿った任意のActivityが特別なIntentの引数を必要とするなら
Activityのサブクラスは
これらの引数を与えるためのメソッド
onPrepareNavigateUpTaskStack(TaskStackBuilder)
をOverrideする必要がある

詳しくは、developer guideの
navigation
task
backstack
を参照

カスタムアップナビゲーションの実装には
TaskStackBuilderクラスと
Activityのメソッドの
getParentActivityIntent()
shouldUpRecreateTask(Intent)
および
navigateUpTo(Intent)
を参照

さらに
Android SDKのAppNavigationのサンプルアプリは
リファレンスに使える

戻り値は、アップナビゲーションが正常に完了し、Activityが終了したらtrue
それ以外ならfalse

public boolean onNavigateUpFromChild(Activity child)
これは、Activityの子Activityがアップナビゲーションしようとしたときに呼び出される
デフォルト実装は、親ActivityのonNavigateUp()
を呼び出す

引数のchildは、呼び出しを行うActivity

public void onPrepareNavigateUpTaskStack(TaskBuilder builder)
別のタスクからアップナビゲーション中に生成される合成タスクスタックを準備する
このメソッドは、onCreateNavigateUpTaskStack(TaskStackBuilder)
により生成されたIntentの構成したシリーズを持つTaskStackBuilderを受け取る
新しいタスクを起動する前に、特別なデータが、これらのIntentに追加される必要がある場合、
アプリはこのメソッドをOverrideし、そのデータを追加する必要がある

引数のbuilderは、
onCreateNavigateUpTaskStackで
Intentが移入されたTaskStackBuilder

public boolean should UpRecreateTask(Intent targetIntent)
TargetIntentを使い、このActivityからアップナビゲーションする際に
アプリが、タスクを再生成する必要があるならtrue

このメソッドがfalseなら
アプリは正確にアップナビゲーションを実行するため
同じパラメーターを使ってnavigateUpTo(Intent)を呼び出すことができる

これもfalseなら
アップナビゲーションをする際にアプリがタスクを再構築する必要があるならtrue
このメソッドがfalseなら、アプリは正確にアップナビゲーションを実行するため
同じパラメーターを使い
navigationUpTo(Intent)を呼び出せる

このメソッドがfalseなら
アップナビゲーションを実行するため
TaskStackBuilder
または同様のメカニズムを利用し
アプリは新しいタスクスタックを合成する必要がある

引数の targetIntentは
アップナビゲーションのためのターゲット先を表すIntent

戻り値は、アップナビゲーションが新しいタスクスタックを再生成する必要があるならtrue
同じタスクが宛先に使われるならfalse

public void startActivities(Intent[] intents, Bundle options)
新しいActivityを起動
Activityが終了するときの情報の受け取りはできない
この実装は、起動を行うActivityに関する情報を提供し、ベースバージョンを上書きする
この追加情報のための
FLAG_ACTIVITY_VIEW_TASK
起動フラグは必須ではない

指定していない場合、新しいActivityは、呼び出し元のタスクへ追加される

与えられたIntentを実行するためのActivityが見つからないと
ActivityNotFoundExceptionをスローする

引数のIntentは、
開始するためのIntent

optionsは、どのようにActivityが開始されるか示すオプション

public void startActivity(Intent intent, Bundle options)
新しいActivityを起動する
Activityが終了する際の情報は受け取れない
この実行は、起動を行うActivityに関する情報を提供し、
ベースバージョンを上書きする

この追加情報のための
FLAG_ACTIVITY_NEW_TASK
起動フラグは必須ではない

指定していない場合
新しいActivityは、呼び出し元のタスクへ追加される

与えられたIntentを実行するためのActivityが見つからないと
ActivityNotFoundExceptionをスローする

引数のIntentは、開始するためのIntent

optionsは、どのようにActivityが開始されるべきかを示す追加オプション

public void startActivityForResult(Intent intent, int requestCode, Bundle options)
Activity終了時の結果を希望してActivityを起動する
このActivityが終了すると、
onActivityResult()は、requestCodeを与えられ呼び出される
requestCodeに負の値を指定して
startActivity(Intent)を呼び出すのと同じ
注意点としては、
このメソッドは結果だけを返すように定義されているIntentのプロトコルで使うこと

他のプロトコルでは結果を得ることはできない

例えば、singleTask起動モードでActivityを起動すると、
タスク内で起動せず、すぐにキャンセルの結果を受け取る

特別な場合として、Activityの最初のonCreate(Bundle savedInstanceState)
onPause()内で
0以上のrequestCodeの値で
startActivityForResult()を呼び出した場合
開始されたActivityから結果が戻ってくるまでウインドウは表示されない

これは別のActivityへのリダイレクト時に目に見えるちらつきを防ぐため

与えられたIntentを実行するための
Activityが見つからないと
ActivityNotFoundExceptionをスローする

引数のintentは
開始するためのIntent

requestCodeは、0以上ならActivityが終了する際に
onActivityResult()内で返される値

optionsは、どのようにActivityが開始されるべきかを示す追加オプション

public void startActivityFromChild(Activity child, Intent intent, int requestCode,, Bundle options)
このActivityの子Activityが
startActivity(Intent)または
startActivityForResult(Intent,int)を呼び出したときに呼ばれる

与えられたIntentを実行するためのActivityが見つからないと
ActivityNotFoundExceptionをスローする

引数のchildは、呼び出しを行うActivity

intentは、開始するためのIntent

requestCodeは、requestCodeへの戻り値
戻り値が要求されてないと0未満の値になる

optionsは、どのようにActivityが開始されるべきかを示す追加オプション

public void startActivityFromFragment(Fragment fragment, Intent intent, int requestCode, Bundle options)
このActivityのfragmentが 
startActivity(Intent)
または
startActivityForResult(Intent,intent)
を呼び出したときに呼び出される

与えられたIntentを実行するためのActivityが見つからないと
ActivityNotFoundExceptionをスローする

引数のfragmentは
呼び出しを行うFragment

intentは、開始するためのIntent

requestCodeは、requestCodeへの戻り値
戻り値が要求されてないと0未満の値になる

optionsは、どのようにActivityが開始されるべきかを示す追加オプション

public boolean startActivityIfNeeded(Intent intent,int requestCode, Bundle options)
与えられたIntentを処理するため
新しいインスタンスが必要な場合のみ
Activityを起動するための特殊バリエーション

FLAG_ACTIVITY_SINGLE_TOPフラグ
または、singleTask
またはsingleTop起動モードと
現在実行中のActivityと同じIntentを処理するActivityを使っている場合は
新しいインスタンスは必要ない

この場合
onNewIntent(Intent)を呼び出すという普通の振る舞いの代わりに
この関数は戻り、自分でIntent処理ができるようになる

この関数は、トップレベルのActivityからのみ呼び出すことができる

子Activityから呼び出すと
ランタイム例外がスローされる

引数のintentは、開始するためのIntent

requestCodeは、0以上ならActivityが終了する際に
startActivityForResult(Intent,int)

説明されているonActivityResult()内で返される値

optionsは、どのようにActivityが開始されるかを示す追加オプション

戻り値は、新しいActivityが起動された場合はtrue
そうでないならfalseとなり
Intentを自分で処理する必要がある

public void startIntentSender(IntentSender intent, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options)
startActivity(Intent,Bundle)に似てるけど
開始するためにIntentSenderを取り入れている
IntentSender.SendIntentExceptionがスローされる

引数のintentは
起動するためのIntentSender

fillInIntentは、nullでないならIntentのparameterとしてsendIntent(Context, int, Intent, IntentSender.OnFinished, Handler)に提供される

flagsMaskは、変更したいオリジナルのIntentSenderにある
IntentFlag

flagValuesは、flagsMaskに設定されている任意のビットの変更したい値

extraFlagsは、常に0

optionsは、どのようにActivityが開始されるべきかを示す追加オプション
もし、オプションもIntentSenderにより与えられているなら
上書きされる

長い文字列の省略表示

長い文字列の省略表示

TextViewで表示するときに
画面に入らないぐらいに
文字列が長いと途中で切り捨てられる

こんなときには、ブログとかでよくみる

で続くように表示できるので、これを使う

やり方は
レイアウトで
android:ellipsize=”end”
android:singleLine=”true”
を設定

ただし

[Android] 今後利用が推奨されないプロパティ


によれば
singleLine=”true”
から
maxLines=”1″
になるらしい

あと、複数行で末尾省略するには
android:scrollHorizontally=”true”
も必要

これについては
http://qiita.com/hackugyo/items/e23ecfda14bdfc672e7c
を参考にさせていただきました

レイアウトファイルのソース部分は

<TextView
android:id="@+id/text"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLine="1"
android:text="レイアウトファイルによる省略文字の設定: お試し"/>

そして、プログラムで制御するなら
まずはレイアウトファイルのほうで
TextViewへidを付けて、それに対するプログラムを書く

まずは、レイアウトのソース

<TextView
android:id="@+id/text2"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:text="" />

次に制御するJavaのソース
これは、onCreate()の中に書く

TextView text2 = (TextView)findViewById(R.id.text2);
text2.setEllipsize(TruncateAt.END);
text2.setMaxLines(1);
text2.setText("プログラミングで設定した省略文字の設定: お試し その2");

これらの set….に関しては
http://wikiwiki.jp/android/?UI%A5%B3%A5%F3%A5%DD%A1%BC%A5%CD%A5%F3%A5%C8%2FTextView
にまとめられているので参考に

文字列にHTMLリンクを使う

文字列にHTMLリンクを使う

HTMLリンクを使う、つまりURLリンクの作成をするには
レイアウトで Viewに
android:autoLink=””
を追加するか、
もしくは
プログラムで
setAutoLinkMask()
を使う

ほとんどの場合は、TextViewで使うことが多い
これは、シンプルだし
TextViewに準備されているメソッドとか属性が
文字の表現に特化しているから

なので、文字表示には基本的にTextViewを使う

レイアウトで設定するなら

<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:autoLink="web"
android:text="レイアウトで設定 http://www.yahoo.co.jp"/>

プログラムでやるならレイアウトファイルで
@+id/text2
とかでIDをつけて、それで判別して制御する

まず

<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"/>

これで、パーツを用意して

あとは、Javaで制御
画面の制御とかはonCreate()の中になるので

TextView txt2 = (TextView)findViewById(R.id.text2);
txt2.setAutoLinkMask(Linkify.WEB_URLS);
txt2.setText("プログラムで設定したURL http://www.google.co.jp");

で設定

.setAutoLinkMask(Linkify.WEB_URLS)
でWebページを指定している

リンクの種別を変えれば
電子メールや電話番号にできる

電話番号にするなら
.setAutoLinkMask(Linkify.PHONE_NUMBERS)
にする

Android 関数メモ

Android 関数メモ

public void startSearch(String initialQuery, boolean selectInitialQuery, Bundle appSearchData; boolean globalSearch)
このフックは、検索UIを起動するために呼び出される

引数のinitialQueryは、任意のnull以外の文字列が検索ボックスに入力テキストとして挿入される

selectInitialQueryは、trueならinitialQueryが選択をれた状態になる
タイプすればinitialQueryの変更ができる
つまり検索ワードの変更

falseなら、選択ポイントが挿入されたqueryの末尾になる
これは、入力したテキストの後に追加するときに使う

appSearchDataは、アプリ固有のContextの挿入
このデータは、1つ、もしくは複数のSEARCHインテントで返される
extraDataが必要ないならnullにする

globalSearchは、falseならアプリにより明確に定義されている検索を起動する
現在のアプリ、またはActivityでデフォルトサーチが定義されていない場合
グローバル検索が起動する
trueだと、プラットホーム上のグローバル検索、例えばWebベースの検索を起動する

public void takeKeyEvents(boolean get)
キーをActivityに移すことを要求する
Activityがフォーカスを持ったViewを持っていない場合で、Activityがまだキーイベントを処理するときに使う

public void triggerSearch(String query, Bundle appSearchData)
startSearch(String, boolean, Bundle, boolean)と似てるけど
検索ダイアログを呼び出した後に検索queryをOFFにする
これほ、テストで使う

引数のqueryは、トリガー用のquery
空なら要求は無視

appSearchDataは、独自の検索の質や特異性の向上のため、アプリ固有のContextを挿入
このデータは、SEARCH intent(s)で返される
Extraデータが必要ないならnullを指定

public void unregisterForContextMenu(View view)
指定されたViewに対してContextMenuが表示されないようにする
このメソッドは
Viewの
View.onCreateContextMenuListener
を削除する

引数のviewは、ContextMenuの表示を停止するView

protected void onActivityResult(int requestCode, int resultCode, Intent data)
起動したActivityが終了するときに、Activity開始時に与えたrequestCodeと
Activityから返されたresultCode
そして追加データを与えて呼び出される

引数のrequestCodeは、
startActivityForResult()に与えられた整数のRequestCode
この結果で、どのActivityから来たか特定できる

resultCodeは、setResult()を介して子Activityにより返される整数の結果コード

dataは、呼び出し元へ、結果データを戻すためのIntent
これは、IntentのExtraにアタッチされた様々なデータ

protected void onApplyThemeResource(Resources.Theme theme, int resId_ boolean first)
現在のThemeオブジェクトにテーマのリソースを適用するsetTheme(int)と
getTheme()により呼び出される

デフォルト動作変更のためOverrideすることが可能

このメソッドは、マルチスレッドで同時に呼び出されることはない

引数のthemeは、変更しようとするテーマのオブジェクト

resIdは、テーマに適用されるスタイルリソース

firstは、スタイルを初めてテーマに適用するならtrue

protected void onCreate(Bundle savedInstanceState)
Activityが開始されたときに呼び出される
ほとんどの初期化が行われる場所
派生クラスは、このメソッドのスーパークラスの実装に介して呼び出す必要がある
そうでない場合、例外がスローされる

引数のsavedInstanceStateは
以前にシャットダウンされた後、Activityが再起動される場合
このBundleは、直近の
onSaveInstanceState(Bundle)
で提供されたデータがふくまれる

protected void onDestroy()
Activityが破棄される前に任意の最終的なクリーンアップを実行
Activityがfinish()で終了している、もしくは
システムがスペース節約のため一時的にActivityのインスタンスを破棄しているときに発生する

isFinishing()を使い、そのどちらかを判別できる
派生クラスは、このメソッドの実装に
スーパークラスのメソッドを呼び出す必要がある
呼び出さないと例外がスローされる

protected void onNewIntent(Intent intent)
package内のインスタンス singleTop に設定された launchModeのActivityのために呼ばれる
または、クライアントが
FLAG_ACTIVITY_SINGLE_TOPフラグで
startActivity(Intent)
を呼び出したときに呼ばれる

引数のintentは、
Activityを開始された新しいActivity

protected void onPause()
ActivityがBackgroundへ移動するActivityのライフサイクルの一部として
呼び出されるがkillされていない
これは、onResume()の対になる

派生クラスは、このメソッドの実装に
スーパークラスのメソッドを呼び出す必要がある
呼び出さないと、例外がスローされる

protected void onPostCreate(Bundle savedInstanceState)
Activityの起動が、完了したときに
onStartと
onRestoreInstanceState(Bundle)
が呼び出された後に呼び出される

アプリは、一般的にはこのメソッドを実装してはいけない

protected void onPostResume()
Activityの再開が完了したとき
つまりonResume()が呼び出された後に呼び出される

派生クラスは、このメソッドの実装に
スーパークラスのメソッドを呼び出す必要がある
そうでないと例外がスローされる

protected void onRestart()
現在のActivityがユーザーにより再表示される
つまり、ユーザーが戻る動作をしたときに
onStop()の後に呼び出される

派生クラスは、このメソッドの実装に
スーパークラスのメソッドを呼び出す必要がある
呼び出さないと例外をスローする

protected void onRestoreInstanceState(Bundle savedInstanceState)
Activityが以前に保存した状態から再初期化される前に
savedInstanceStateを与えられて
onStart()の前に呼び出される

引数の
savedInstanceStateは、
onSavedInstanceState(Bundle)で供給された最新のデータ

protected void onResume()
Activityがユーザーとの対話を開始するため
onRestoreInstanceState(Bundle)
onRestart()
または、onPause()した後に呼び出される

派生クラスは、このメソッドの実装にスーパークラスのメソッドを呼び出す必要がある
呼び出さないと例外をスローする

protected void onSavedInstanceState(Bundle outState)
onCreate(Bundle)
または、onRestoreInstanceState(Bundle)
で復元できるように
Activityがkillされる前に
Activityからインスタンスごとの状態を取得するため呼び出される
呼び出された場合、onStop()の前に呼び出される
onPause()の前後では発生する保証はない

引数のoutStateは、保存した状態を配置したBundle

protected void onStart()
onCreate(Bundle)した後
または、Activityが停止したけどonRestart()でユーザーに表示された後の状態のときに呼び出される

そして、onResume()が続けて呼び出される

派生クラスは、このメソッドの実装にスーパークラスを呼び出す必要がある
呼び出さないと例外をスローする

protected void onStop()
Activityがしばらくの間、ユーザーに表示されていない場合呼び出される
この後のユーザーの行動に応じ、
onRestart()
onDestroy()
または、何もしない
派生クラスは、このメソッドの実装にスーパークラスを呼び出す必要がある
呼び出さないと例外をスローする

protected void onUserLeaveHint()
Activityがユーザー選択の結果として
backgroundへ入ろうとしているときに
Activityのライフサイクルの一つとして呼び出される