第5回 アクティビティの制御と明示的インテント

Android開発に関するメモランダム

カテゴリー: IDE  閲覧数:476 配信日:2012-01-25 00:00


主画面から副画面へ遷移するアプリ
・副画面の準備
・ソースコードの準備
・AndroidMnifiest.xmlへの準備
・動作テスト

副画面の準備
・Androidの画面は,XMLで表現されているのでテキストエディタでも記述できるが,今回はEclipseに内蔵されているリソースエディタを利用
・[ファイル]メニュー[新規]の[その他]を選択
・新規ダイアログが表示されたら[Android]から[Android XML File]を選択して,[次へ]をクリック

ダイアログ画面
・ファイル欄に、skeleton_sub_activity.xmlと入力
・ルート欄が「LinearLayout」を選択していることを確認

次の画面
・Size Normal
・Raito NotLong
・Orientation Portrait
・Density MediumDensity
・TouchScreen Finger
・Keyboard Soft
・TextInput Qwerty
・Navigation Method Trackball
・Dimension 480×320

・アウトラインパネルに[LinearLayout]が表示された!

アウトラインパネルの[LinearLayout]を選択して,プロパティパネルの[Orientation]を[vertical]に設定します。次に,コントロールを配置して行きます
[Views]から[EditText]を選択して,
が分かんない。どこにあるの?

ドラッグしてビューに配置します。同じく[Button]を選択して,ドラッグしてビューに配置します。
とりあえず、適当に配置して先へ進む

・[SkeletonSubActivity]を選択して[OK]クリック
・[OK]がどこにあるか分からず、ctrl+s

2時間ぐらい経過後、ようやく原因らしき箇所を発見。
パッケージの「res」フォルダ以下に「layout-normal-notlong-port-mdpi-stylus-keyssoft-qwerty-trackball-480x320」がフォルダ作成され「skeleton_sub_activity.xml」が格納されます
の次。
「skeleton_sub_activity.xml」を「layout」フォルダへドラッグで移動して「layout-normal-notlong-port-mdpi-stylus-keyssoft-qwerty-trackball-480x320」フォルダは削除します
この手順を飛ばしてた。
日本語も満足に読めないのか、オレは…。

ドラッグしたら、強制終了せず、副画面へ遷移するようになった。
(副画面から主画面へは、何故か戻れないけど…)


副画面から主画面へ戻らなかった件。
副画面に遷移したら,エミュレータのバックキーを押してください。起動時の主画面に戻るはずです
試したら、ちゃんと画面遷移した。
どうやら、これで正常な状態らしい。
<動作テスト>
無事終了

主画面から副画面へ遷移する際,データの引き渡しを実施
・インテントには,追加データを持たせることができるので,その仕組みを使って,主画面から副画面へ移動する際に,テキストを引き渡して,副画面のテキスト入力エリアへ表示を行う
・データ送信側…主画面…SkeletonActivity.java
・データ受信側…副画面…SkeletonSubActivity.java
・データを送信するタイミング…主画面のバックボタンをクリック

まずは,SkeletonActivity.javaのバックボタンが押された際のコードに,追加のデータを引き渡すコードを追加。
第1引数がキーで,インテントが保持している追加データにアクセスするために使います。第2引数は,追加データになり,今回のケースはテキストです
//Intentクラスのintentインスタンスオブジェクトを生成
Intent intent = new Intent( SkeletonActivity.this, SkeletonSubActivity.class );
intent.putExtra( "INTENT_PARAM", "TEST" );//第1引数…キー、第2引数…追加データ

Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll".
インテントに拡張データを追加。名前は、たとえば、the app com.android.contactsは"com.android.contacts.ShowAll"のような名前を使用する場合、パッケージの接頭辞を含める必要があります。


Parameters
name The name of the extra data, with package prefix.
value The String data value.

Returns
Returns the same Intent object, for chaining multiple calls into a single statement.

パラメータ
パッケージの接頭辞を伴う、拡張データの名前
文字列のデータ値

戻り値
単一のステートメントに連鎖複数の呼び出しのために、同じインテントオブジェクトを返す


◆putExtra … Intentクラスのメソッド。役割→インテントに拡張データを追加。第1引数→インテントが保持している追加データにアクセスするためのキー。第2引数…追加するデータ


if文のelseの後str = "";の前後に{ }が抜けてます
SkeletonSubActivity.javaに追加

この状態で実行しようとするも、起動せず。
R.id.EditText01
はデフォルトでセットされる
R.id.editText1
にした方がいいです
SkeletonSubActivity.javaを編集
// 編集エリアに追加データを表示する。
EditText edit = (EditText)findViewById( R.id.EditText01 );
   ↓
EditText edit = (EditText)findViewById( R.id.editText1 );

・この状態で、実行すると、無事起動し、主画面のバックボタンをクリックすると、副画面へ遷移し、なおかつ、これまで空欄だったテキストエリアに、渡したデータ「TEXT」が表示されるようになった
・だけど、何で、EditText01じゃあ、動かなかったんだろう?
・それに、editText1って、どこから来たのだろう

・秀丸でファイルを開く
・「右クリック」-「アプリケーションから開く」-「その他」―「参照」
・「SkeletonActivity/res/layout/skeleton_sub_activity.xml」を、秀丸で開いてようやく分かった
editText1って、
<EditText
android:id="@+id/editText1"から来ているみたい。

それにしても、eclipseで、xmlファイルの色分けが、なんでされないの?
設定が分からねー。

Androidの画面は,XMLで表現されているのでテキストエディタでも記述できますが,今回はEclipseに内蔵されているリソースエディタを使います
って書かれてるけど、「Eclipseに内蔵されているリソースエディタ」って。いわゆるGUIのことかしら?

本体っていうか、画面設定は、
/SkeletonActivity/res/layout/skeleton_activity.xml
/SkeletonActivity/res/layout/skeleton_sub_activity.xml
なわけね。
いわゆる、テンプレートとか、レイアウトファイルってことかしら?

ビューの[Orientation]を[vertical]に設定しているので,それぞれのオブジェクトが縦に並ぶはずです
▼/SkeletonActivity/res/layout/skeleton_sub_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >


リファレンスは日本語に訳されてないっぽい。
LinearLayout | Android Developers


■Activityクラス … 画面作成
■LinearLayoutクラス … 縦又は横方向にビューを配置していくレイアウト


色々調べている内、どうももっと基本的なところから、
やらないとワケわかんないことに気が付いた。
それこそ、画面遷移より、まずは、Hello Worldからでしょうよ。

ということで、ここからは予定を変更して、
このチュートリアルをやっていくことにする。
Android入門

ちなみに、「LinearLayout」表示部分については、良さ気なサイトがあったので、メモ。
LinearLayoutとRelativeLayoutの使い方をまとめてみた - プログラミング雑記


・続きはこちら

週間人気ページランキング / 5-12 → 5-18
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/5/19 1:01 更新
指定期間人気ページランキング / 1970-1-1 → 2024-5-18
順位 ページタイトル抜粋 アクセス数
アクセスが、ありませんでした! 0
2024/5/19 1:01 更新