8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Android] Bundleを使ってActivity間データ送り。

Posted at

こんにちは。。DREAMWALKER です。
ANDROIDを開発しているとACTIVITYやFRAGMENT間データを伝送しなきゃならない場合があります。
その時色々方法はありますが、簡単にBUNDLEを使って処理できます。

序論

ANDROIDではACTIVITY間データを取り交わす場合、
1. REQUEST CODE
2. KEY
3. KEY - VALUE
この三つを基本にして取り交わします。

基本的なテクニック.

発信(送り)

普通BUTTONを押したあと、処理しますので、OnClickListenerのなかでしました。

activity.java
btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.putExtra("name","john");
                setResult(RESULT_OK, intent);
                finish();
            }
        });

注文点はputExtra("key","key-value")です。

受信(受け取り)

getを注文。

MainActivity.java
 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK){
            String name = intent.getExtras().getString("name");
            Toast.makeText(this,"name:? -> " + name, Toast.LENGTH_SHORT).show();
        }
    }

RESULT_CODEはACTIVITY.JAVAの定数です。

ACTIVITY.JAVA
/** Standard activity result: operation succeeded. */
    public static final int RESULT_OK           = -1;

本論

BundleもKEY-VALUEになっており、HASH MAP 資料構造(Data Structure)です。

Bundle - Android Developers

発信(送り)

activity.java
  Bundle bundle = new Bundle();

  bundle.putString("data0", "bird");
  bundle.putString("data1", "lion");
  bundle.putString("data2", "dog");
  bundle.putString("data3", "cat");

  Intent intent = new Intent(getApplicationContext(), DrugDetailActivity.class);
  intent.putExtras(bundle);
  startActivity(intent);
  1. putExtra("key","value");
  2. putExtras(bundle);

受信(受け取り)

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

        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();

        String bird = bundle.getString("data0");
        String lion = bundle.getString("data1");
        String dog =  bundle.getString("data2");
        String cat =  bundle.getString("data3");
    }

結論

PUT-GETのメカニズム です。
1. intent
2. bundle
3. send-receive

終わりに

初心者の方は無限な振り返りをして、
自分のものにしましょう。Codingは見るだけではNGです。

読みいただきありがとうございました。
次のPostで会いましょう!

Dreamwalker。

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?