プロフィール

Epic's Garden

Author:Epic's Garden
初心者による、初心者のための解説ブログ。
現在、アプリ公開中!
サークル「Epic's Garden」として活動してます。

カテゴリ

最新記事

最新コメント

月別アーカイブ

アクセスカウンター

ブログランキング

にほんブログ村 IT技術ブログへ

twitter

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文:

アプリ・ゲーム開発らぼ(旧Androidアプリ開発らぼ)
様々なプラットフォーム向けのアプリ開発らぼです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

IntentによるActivity間でのデータの受け渡し
今回はIntentを使ってデータを受け渡す方法について解説します。

Activity間でのIntent、WebページへのIntentで使用したプロジェクトを使用します。プロジェクトを以下のように変更してください。


MainActivity.java


package com.yumenomaterial.intent;

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

public class MainActivity extends Activity {

    private EditText et;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et=(EditText)findViewById(R.id.et);
        Button btn1 = (Button)findViewById(R.id.b1);


        btn1.setOnClickListener(new OnClickListener() {
            public void onClick(View v){
                Intent intent = new Intent();
                intent.putExtra("data1",et.getText().toString());//・・・【1】
                intent.setClassName("com.yumenomaterial.intent", "com.yumenomaterial.intent.SecondActivity");
                startActivity(intent);
            }
        });
    }
}


SecondActivity.java


package com.yumenomaterial.intent;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class SecondActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Intent gi = getIntent();//・・・【2】
        String data = gi.getStringExtra("data1");//・・・【3】

        TextView tv=(TextView)findViewById(R.id.tv);
        tv.setText(data);//・・・【4】
    }

}


activity_main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="" />

    <Button
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btn1" />

</LinearLayout>


activity_second.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="" />

</RelativeLayout>


【1】では「et」に書きこまれた文字をString形式にして「data1」としています。intent.putExtra("データの名前",送りたいデータ)で入力したデータは、intentした先のActivityで【2】、【3】のようにして受け取ることができます。
他のActivityからintentで送られてきたデータを受け取るためには、まず【2】のようにgetIntent()で Intent ○○(ここでは○○はgi)を取得する必要があります。
そして○○.getStringExtra("~~~")で送られてきたデータを受け取ります。【3】ではMainActivityで「data1」に入力されたデータをString形式の「data」に挿入しています。
【4】で「tv」のテキストを「data」にしているので、画面にはMainActivityの「et」に入力した文字が表示されます。

intentd01.jpg

intentd02.jpg
スポンサーサイト
コメント

コメントの投稿














管理者にだけ表示を許可する


トラックバック
トラックバック URL
http://yumenomaterial.blog.fc2.com/tb.php/32-58b87d87
この記事にトラックバックする(FC2ブログユーザー)

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