今天要分享的是Activity間傳遞資料的方法。
比較常用的方法有兩種
第一種:
Intent有個內建方法putExtra,
你可以使用它將變數直接放入,
夾帶使用。
第二種:
新建一個Bundle,
再使用putExtras方法夾帶Bundle過去。
今天我會示範我較常用的第二種方法,
新建一個Bundle再使用putExtras方法夾帶資料過去。
我們延續 [Android Studio菜鳥的學習分享]頁面跳轉切換-Intent
繼續製作下去。
目標:
取得MainActivity的EditText和TextView兩個欄位資料,
將資料放入Bundle,
使用putExtras方法夾帶資料。
使用Intent切換頁面後,
將兩個資料放入MainActivityBTest的兩個新TextView中。
結果預覽:
activity_main.xml
MainActivity.java
Step01-新增Intent變數:
Intent intent = new Intent();
Step02-設定目前Activity與目標Activity:
intent.setClass(MainActivity.this,MainActivityBTest.class);
Step03-新增Bundle變數:
Bundle bundle = new Bundle();
Step04-Bundle內新增字串資料:
putXXXXX:
XXXXX為資料型態
Example:
putString -> 放入字串
putInteger -> 放入整數
bundle.putString("edittext",edittitle.getText().toString());
bundle.putString("textview",textoutput.getText().toString());
Step05-在Intent夾入Bundle:
intent.putExtras(bundle);
Step06-開始執行轉跳切換:
startActivity(intent);
activity_main_b_test.xml
MainActivityBTest.java
Step01-產生變數:
private TextView textEdit,textText;
Step02-變數綁定ID:
textEdit = (TextView) findViewById(R.id.textEdit);
textText = (TextView) findViewById(R.id.textText);
Step03-獲取Bundle內資料並放入字串變數:
String edittextString = (String)getIntent().getExtras().getString("edittext");
String textviewString = (String)getIntent().getExtras().getString("textview");
Step04-設定字串文字
textEdit.setText(edittextString);
textText.setText(textviewString);