Android

MediaStore

写真、動画、音楽なども、ContentResolverを使って取り出す・・・。 MediaStoreに、それらのメディア情報に関する定数が定義されているので、それを使う・・・。MediaStore | Android Developersまず、activity_main.xmlは、今回は写真を表示するので、GridV…

BitmapFactory

前回は、Bitmapをファイルから読み込んだが、今回はdrawableリソースから読み込む・・・。 前回同様、BitmapFactoryで読み込む・・・。BitmapFactory | Android Developersactivity_main.xmlには、imageview1・・・。MainActivity.javaは、今回は、BitmapFac…

Bitmap

ImageViewの回では、srcにdrawableに置いた画像を直接指定して画像を表示していた・・・。 今回は、アプリフォルダにある画像ファイルを読み込んで、いったんBitmapにし、それをImageViewで表示する・・・。Bitmap | Android Developersactivity_main.xmlは…

ContactsContract

ContentResolverで連絡帳から名前を取り出してリスト表示するということはできたが、 電話番号やメールアドレスは取り出し方が面倒なので避けていた・・・。今回はContactsContractに定義された定数を使って、電話番号、メールアドレスも取り出していく・・…

FragmentTabHost

ActionBar.TabもAndroid5.0で非推奨になったので、タブUIを実現する方法のひとつとしてFragmentTabHostがある・・・。FragmentTabHost | Android DevelopersFragmentTabHostはTabHostのcontent部分をFragmentにできるようにしたもの・・・。 標準のWidgetで…

ActionBar.Tab

TabHostは非推奨になったので、Android3以降はActionBarの登場とともに、ActionBar.Tabというタブの機能が付くようになった・・・。ActionBar.Tab | Android DevelopersActionBar.Tabでタブを作成、画面はそれぞれがFragmentとなる・・・。XMLで、fragment1…

TabHost

タブで画面を切り替える方法はいろいろあるが、一番基本的な方法はTabHostを使う方法・・・。TabHost | Android Developers実はもう非推奨になっているはずだが、削除はされていない模様なので使えるには使えるっぽい・・・。 これを使って、タブで画面切り…

ContentResolver

Androidアプリ上で扱う写真や、動画、音声ファイル、電話帳、ブックマークなどあらゆるデータの情報はAndroid内部のDBに登録されている・・・。 このDBにアクセスするには、ContentResolverを使う・・・。ContentResolver | Android Developers今回は、電話…

DownloadManager

ファイルのダウンロードを実現するなら、DownloadManagerを使うという方法もある・・・。DownloadManager | Android Developersactivity_main.xmlは、edittext1がURL入力用・・・。 button1でダウンロードのリクエストを投げる・・・。BroadcastReceiverの派…

HttpURLConnection

HttpURLConnectionは、Java標準のHTTP通信のためのクラス・・・。HttpURLConnection | Android Developersもともと使えるが、Android6でDefaultHttpClientが使えなくなったので、より重要度が増している・・・。 前回のDefaultHttpClientを使ったものを、Htt…

DefaultHttpClient

そろそろ非同期処理の中で行う処理もまともなものにしていこう・・・。 HTTPリクエストを投げて、Webページのダウンロードやデータのポストを行うにはHttpClientを利用する・・・。DefaultHttpClient | Android Developers | Android DevelopersDefaultHttpC…

IntentService

IntentServiceも非同期処理を行うクラスだが、こちらはServiceの派生クラスで、主に画面遷移に関係なくバックグラウンドで時間のかかる処理を任せる場合に使う・・・。IntentService | Android Developersプロジェクトを作成したら、IntentServiceの派生クラ…

AsyncTaskLoader

AsyncTaskLoaderは、Android 3から導入された新しい非同期処理クラス・・・。AsyncTaskLoader | Android Developers近年、こちらのほうが推奨されているので、前回の非同期処理をこれで書いてみる・・・。AsyncTaskLoaderの派生クラスとしてCustomAsyncTaskL…

AsyncTask

前回までの、ワーカースレッドに重い処理を任せて、終わったら通知してもらうような処理を非同期処理という・・・。 ThreadとHandlerを使ったパターンは一番基本的なものだが、少々複雑なことをしようとするとこれらでは大変・・・AsyncTask | Android Devel…

Handler

ThreadとRunnableを使って、重たい処理を別のスレッドに任せることができた・・・。 そのスレッドの処理が終ったら、TextViewやButtonの状態、Toast表示などで終わったことを通知したい・・・。 package com.bgstation0.android.sample.handler_; import and…

Runnable

Threadは、スレッド上で実行する処理内容runメソッドを持つRunnableインタフェースを実装する必要がある・・・。Runnable | Android Developers今回は、匿名クラスでRunnable派生クラスを定義し、それをThreadのコンストラクタ引数に渡すことで、runを実行す…

Thread

ファイルのダウンロード、大量データのDBへの投入は、時間がかかる重たい処理・・・。 package com.bgstation0.android.sample.thread_; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; impor…

BroadcastReceiver

全てのアプリに対して投げるインテントをブロードキャストインテントと言い、それは例えばバッテリーの減少通知や、端末の起動通知、航空機モードへの切り替え通知など、システムから何かが発生したことを通知するときに使われることが多い・・・。 (またサ…

IntentFilter

Intentの項で、"http~"で始まるURIを持つ暗黙的インテントを投げたら、それにブラウザが反応し、起動して、そのURIの指すWebページを表示できた・・・。 このブラウザの様に、受け側のアプリが、送る側のインテントの条件に当てはまっていれば、アプリでそ…

Activity.startActivityForResult

アクティビティAから、別のアクティビティBを起動した後、元のアクティビティAに戻るときに、アクティビティBから値を受け取って、アクテビティA上で表示・・・。 このように戻るときにパラメータを受け取りたい場合は、Activity.startActivityForResultを使…

GridView

GridViewは、格子状に要素を表示するグリッドビューを扱うクラス・・・。GridView | Android DevelopersListViewと同様にAdapterと紐付けて使う・・・。GridViewを配置・・・。 numColumnsは列の数・・・。ここでは4列ずつ表示・・・。1つの要素のレイアウト…

ProgressBar

ProgressBarはプログレスバーを扱うクラス・・・。ProgressBar | Android Developers今回はボタンを押したら、プログレスバーが進むようにする・・・。Button、そしてProgressBarを配置・・・。 indeterminateは0%とか50%のような明確な進捗を表示しない不定…

FragmentTransaction.show

複数のフラグメントをaddした後のフラグメント表示の切り替えに関してはshowとhideを使って切り替える・・・。FragmentTransaction | Android Developers追加した後は、削除されない限り、ライフサイクルに変化がないので、showやhideで表示と非表示を繰り返…

FragmentManager.findFragmentByTag

replaceやaddした時に"tag1"などタグ名を付けていたと思うが、このタグ名からfindFragmentByTagで、Fragmentオブジェクトを探して取得することができる・・・。FragmentManager | Android Developers前回はMenuが7つあったが、今回は5つに減らした・・・。st…

FragmentManager.popBackStack

replace、または、addした時に、addToBackStackを呼んでおけば、バックキーで1つ前のフラグメントに戻ることができた・・・。 これは、バックキーを押した場合、デフォルトでpopBackStackが呼ばれるからである・・・。FragmentManager | Android Developers…

FragmentTransaction.add

フラグメントを切り替える方法は、FragmentTransaction.replaceで置換する方法の他にもう一つ、FragmentTransaction.addで追加するというものがある・・・。FragmentTransaction | Android Developersこの場合のフラグメントの状態はどうなるのかを検証する…

FragmentTransaction.addToBackStack

FragmentTransaction.replaceの後に、FragmentTransaction.addToBackStackを呼ぶと、置換前のフラグメントをバックスタックと呼ばれる領域(スタック?)に保存してくれる・・・。 これをすることで、バックキーを押したときに前のフラグメントに戻ることができ…

FragmentTransaction.replace

前回でも使ったが、FragmentTransaction.replaceで指定したFragmentに置き換えることができる・・・。FragmentTransaction | Android Developersreplaceは置き換えるということである・・・。 置き換えるということは、以前のフラグメントは破棄されるという…

FragmentTransaction

FragmentTransactionは、フラグメントの追加や置き換えなどの操作をするクラス・・・。FragmentTransaction | Android DevelopersFragmentManagerの項では、Fragmentタグを2つ用意して、activity_main.xmlに静的に埋め込んだ・・・。 今回は、メニューアイテ…

FrameLayout

FrameLayoutは、基本的にはビューを1つだけ配置するためのレイアウトで、2つ目以降のビューを配置すると上に重なって表示される・・・。FrameLayout | Android Developers逆に言うと、重ねて配置したい場合はこれを使うといい・・・。activity_main.xmlに、F…

FragmentManager

FragmentManagerは、Fragmentを管理するクラス・・・。FragmentManager | Android DevelopersfindFragmentByIdで、fragmentタグで指定したidからFragmentオブジェクトを探して取得してみる・・・。前回とほとんど同じプログラムで、大きく違うところはMainAc…

Fragment

Fragmentは、Android 3系から登場したUI・・・。 1つのActivity上で複数のFragmentを持つことができ、それらを切り替えたり、組み合わせることで、柔軟にビューを変化させることができる・・・。Fragment | Android Developers今回は1つのActivityに2つのFra…

ActionBar

ActionBarは、Android 3系から登場したUIで、太いタイトルバーにメニューやボタンなどを付けて、アプリのさまざまな操作ができるようにしたUI・・・。ActionBar | Android Developers基本的には標準で搭載されているが、これまでのactivity_main.xmlなどのla…

WebView

WebViewは、指定されたURLのWebページの表示など、ブラウザの機能を提供するクラス・・・。WebView | Android Developers簡易ブラウザを作ってみる・・・。activity_main.xmlは、上にEditTextのurlbarとButtonのnavigatebutton、下にWebViewのwebviewを配置…

SQLiteOpenHelper

これまで、ファイルやSharedPreferencesでデータを保存してきたが、住所録など同じ形式のデータを大量に保存するとなると、やはりデータベースを扱いたいところ・・・。 Androidは、標準でSQLiteを組み込んでおり、こういったデータもSQLiteで保存して管理で…

SharedPreferences

SharedPreferencesは、アプリの設定情報などを簡単に保存・取得できる仕組み・・・。SharedPreferences | Android Developers前回は、getPreferencesで取得したSharedPreferencesに入力した文字列を保存したので、今度はSharedPreferencesに保存されている文…

Activity.getPreferences

前回、ファイルの読み書きを扱ったが、アプリケーションの設定情報などを扱う場合は、SharedPreferencesを使うともっと簡単に取得・保存ができる・・・。SharedPreferencesへのアクセスにはいくつかの方法があるが、今回はActivityクラスのgetPreferencesメ…

Context.openFileInput

書き込みが出来たので、今度は読み込み・・・。 openFileInputを使う・・・。Context | Android Developersmain.xmlに、"Read file"用のメニューアイテム追加・・・。 (strings.xmlにも"Read file"設定しておく・・・。)あとはMainActivity.javaで、上のEdit…

Context.openFileOutput

ファイルへの書き込みは、openFileOutputでファイルストリームを取得し、JavaのFileOutputStreamなどで書き込んでいく・・・。Context | Android DevelopersopenFileOutputは、Contextクラスのメソッドだが、ActivityはContextを継承しているのでそのまま使…

Activity.onOptionsItemSelected

前回までで、メニューを表示することはできたものの、メニューアイテムを選択された時の処理はまだできていなので、選択しても何も起こらない・・・。ActivityのonOptionsItemSelectedメソッドをオーバーライドして、メニューアイテムが選択された時の処理を…

Menu

Menuは、addで追加していくより、リソースにxmlで定義しておいたほうが楽である・・・。 今回はそうしてみる・・・。Menu | Android Developersプロジェクトを作るとき、DarkActionBarの項目はあるが、あえて今回もNoneで・・・。フォルダを追加・・・。menu…

Activity.onCreateOptionsMenu

Activity上にメニューを表示するには、onCreateOptionsMenuメソッドをオーバーライドして、メニューアイテムを追加する・・・。Activity | Android DevelopersMainActivity.javaで、onCreateOptionsMenuで引数にMenuオブジェクトが渡されるので、menu.addで…

ArrayAdapter

ListViewのレイアウトを変えたり、1アイテムに複数の項目を表示したい場合などは、ArrayAdapterを継承し、getViewをカスタマイズする・・・。ArrayAdapter | Android Developersまず、名前name, 年齢age, 住所addressからなるListItemクラスを定義・・・。[N…

ListView

ListViewは、リストビューを扱うクラス・・・。ListView | Android DevelopersAndroidのリストビューは、リストビュー部分とリストデータ部分を紐付けるアダプターを作る必要がある・・・。 Stringのテキストを1アイテムとし、1アイテムはTextViewのみで表示…

ImageView

ImageViewは、画像を表示するためのビュー・・・。ImageView | Android Developersactivity_main.xmlにImageViewを定義し、drawableに画像を指定して表示する・・・。drawableフォルダにimage1.bmpを置く・・・。 今はdrawableフォルダの代わりにサイズごと…

RadioButton

RadioButtonは、1つ1つのラジオボタンを扱うクラス・・・。RadioButton | Android Developers複数のRadioButtonをグループ化するにはRadioGroupで囲む・・・。RadioGroup | Android DevelopersどのRadioButtonがチェックされているかを確認するには、RadioGr…

CheckBox

CheckBoxは、チェックボックスを扱うクラス・・・。CheckBox | Android Developersボタンとチェックボックスを配置して、ボタンが押されたらチェックボックスがチェックされているかを確認する・・・。activity_main.xmlに、Buttonのbutton1と、CheckBoxのch…

Service

Serviceは、UIを持たないバックグラウンドプロセスであるサービスを扱うためのクラス・・・。Service | Android Developers重たい処理を行う時や、アクティビティのライフサイクルとは切り離して継続的な処理を行いたい時に、サービスを作成・開始し、以降は…

Activity.onDestroy

Activity.onDestroyは、アクティビティが破棄された時に実行する処理を書くためのメソッド・・・。Activity | Android Developers基本的にActivityが表示されている時に戻るボタンを押すと、そのActivityは破棄される・・・。 その時、onDestroyが呼ばれる・…

Activity.onCreate

Activity.onCreateは、アクティビティが生成された時に実行する処理を書くためのメソッド・・・。Activity | Android Developersこれだけ引数があるが、それについてはBundleで扱うとして・・・。アクティビティが起動する時以外で、これが来る場合がある・…