usakdsteen

ゆうさくですてぃーん

メモ:あんどろ(3)

自分用メモ

メモ:あんどろ(2) - usakdsteen

のつづき

 

環境

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を代わりに使えって話にはなってるもののこの旧サポートライブラリ自体はGoogleMavenリポジトリにアップされてるから使いたいならそれ使えって話にはなってて、そして現サポートライブラリは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); してるやつ

タイトルバーに < のマークが出てる

 

f:id:neetsdkasu:20200421190956p:plainf:id:neetsdkasu:20200421232700p:plain