スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

Intentによる画面遷移

AndroidManifestと画面遷移 の記事では、画面遷移アプリケーションを作るため、遷移後の画面 SubActivity についてAndroidManifestへの登録とJavaファイルの作成を行いました。

今回は、遷移前の画面につきXMLファイルとJavaファイルの作成(というよりは変更)を行います。

まずレイアウトの main.xml ですが、ボタンがひとつあるだけのシンプルなものにしました。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttonclick"
android:layout_gravity="center">
</Button>
</LinearLayout>


問題はJavaファイルですが、HelloAndroid.java ではOnClickListenerを設定して、ボタンをクリックしたら画面遷移するようにしました。

package sample.basic;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
import android.content.Intent;

public class HelloAndroid extends Activity{

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(HelloAndroid.this, SubActivity.class);
startActivity(intent);
}
});
}
}


今回学ぶ重要事項は Intent です。

Intent intent = new Intent(HelloAndroid.this, SubActivity.class);
startActivity(intent);

の部分では、Intentオブジェクトを作成してstartActivity()メソッドの引数としています。

さてそもそもIntentとは何かですが、Android Developerによると、

Intentとは、なすべき操作のことを抽象的に言い表わしたものである。

だそうです(何のこっちゃ)。

とりあえず簡単に言うと、IntentはActivity間の連携をとるためのクラスです。現在のアクティビティから別の何かをやりたい、呼び出したい、といった意思(intent)があるときに使うものだと考えると少しは分かりやすいのではないでしょうか。

コンストラクタの作り方は何通りかありますが、今回登場したのは

Intent(Context context, Class class)

の形式。

HelloAndroidはContextクラスのサブクラスなので、第一引数は HelloAndroidを表すthisでいいのですが、今回は無名クラス内でコンストラクタを作ったので HelloAndroid.this と明示的に指定が必要でした。

第二引数の class には、呼び出し先のクラスを指定します。

startActivity()メソッドは、新しいアクティビティを呼び出します。

public abstract void startActivity (Intent intent)



それでは実行してみましょう。

遷移前の画面 HellopAndroid:
20110801_1


遷移後の画面 SubActivity:
20110801_2
関連記事
スポンサーサイト

タグ :

   印刷ボタン       この記事に拍手する       このエントリーをはてなブックマークに追加

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://androidhacker.blog94.fc2.com/tb.php/26-ad94969b
  • 閉じるボタン
レファレンス
月別アーカイブ
リンク
カテゴリ
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。