自分用メモ
のつづき
環境
OS: Windows7
Java: JDK8
Ant: 1.9.2
id: Android-15
Platform: Android 4.0.3
API Level: 15
Revisions: 5
Tag/ABIs: default/armeabi-v7a
Android SDK Tools: 25.2.5
Android SDK Platform-tools: 29.06
Android SDK Build-tools: 29.0.3
使用してるドキュメント: Android4.4.2時点のもの (6年以上昔の古い情報)
ttp://127.0.0.1:8000/training/basics/firstapp/starting-activity.html
送信ボタンを動くようにして
送信ボタンから別にアクティビティを表示する
という話らしい
android:onClickという属性に呼び出すメソッドの名前を書いておけばいいというhtmlみたいな感じ
メソッドはボタンのあるアクティビティに作る必要があって
onClick用のメソッドはpublicメソッドで戻り値なし(void)で引数はViewを1つ受け取るという形にすればいいらしい
他のアクティビティとやりとりする方法としてインテント(?)というのを使うらしい
やりとりしたいアクティビティを指定してインテントのインスタンス生成して
そのアクティビティに送りたいデータをセットして
startActivityからそのアクティビティを起動させる?
送るデータにはキーを設定するらしく(何のデータのやりとりかを示すため?)
そのキーには普通はアプリのパッケージ名もつけてユニークにしたほうがいいらしい?
データ送信先のアクティビティだが
IDE使ってないので自分で必要なファイル生成して配置しておく必要があるが
このチュートリアルではjavaソースを用意して、文字列リソースに追記して、をするだけだたが
最初に示されるjavaソース(IDEで自動生成されるらしいソース)、結局全部書き換えるのでコピペした意味なかった…
この自動生成ソースに含まれるonOptionsItemSelectedメソッド内にあるNavUtilってやつ、Androidのサポートライブラリのv4ってやつに含まれてるらしく
このコード含んだままビルドしようとしたらライブラリ参照できなくて失敗した…
SDKマネージャのExtraのサポートライブラリをインストールした上で、インストールされたディレクトリ( {sdk.dir}/extra/android/support/v4/ )にあるv4のライブラリのjarファイルをプロジェクトの /libs ディレクトリにコピーすればよいらしくビルド成功した
ttp://127.0.0.1:8000/tools/support-library/setup.html
ttp://127.0.0.1:8000/tools/support-library/features.html
サポートライブラリってやつは新しいAPIレベルで導入された機能を古いAPIレベルでも使えるようにしたい(古いAndroidでも互換性のあるようしたい)みたいな需要に応えるためのものらしく、新しいAPIレベル機能を使わずサポートライブラリから使うことで下位バージョンでも動く、みたいな?下位バージョン未対応にするなら素直に新しく入った機能使えってことらしい
サポートライブラリのバージョン番号であるv4とかv7とかはそのライブラリを使うために必要な最低限のAPIレベルを表すらしい(v4ライブラリ使うならAPIレベル4以上のアプリ、v7使うならAPIレベル7以上ってな感じに)
(※最新のサポートライブラリの事情はAndroidXを代わりに使えって話にはなってるもののこの旧サポートライブラリ自体はGoogleのMavenリポジトリにアップされてるから使いたいならそれ使えって話にはなってて、そして現サポートライブラリはv4もv7も古いやつはバージョン名に関係なくAPIレベル14以上じゃないと動かないようになってるらしい Support Library | Android Developers , サポート ライブラリのセットアップ | Android デベロッパー | Android Developers)
新しく追加したアクティビティは AndroidManifest.xmlに追記して登録しておく必要があるらしくそれもチュートリアルには書いてあったが
アクティビティの親子関係を表すらしいandroid:parentActivityNameという属性はAPIレベル16以上ないとダメらしくビルドが失敗した(APIレベル15でやってるため…)
この属性がなくても続いて記載されてるmeta-dataタグの情報あればAPIレベル16未満でも同様に機能すると書いてあるので、android:parentActivityName以外だけにしたらビルド成功した
ttp://127.0.0.1:8000/guide/topics/manifest/activity-element.html#parent
ttp://127.0.0.1:8000/training/implementing-navigation/ancestral.html
(※これに記載されてる getActionBar().setDisplayHomeAsUpEnabled(true); の部分入れてテストしてないや…(自動生成ソースのほうには入ってるやつだよね…?後で試す))
1枚目: getActionBar().setDisplayHomeAsUpEnabled(true); してないやつ
2枚目: getActionBar().setDisplayHomeAsUpEnabled(true); してるやつ
タイトルバーに < のマークが出てる