Intent常用於畫面的跳轉,也就是Activity之間的切換,而在Intent的使用中常伴隨著bundle來輔助傳資料,今天就講解一下他們的合作關係。
首先建立一個新的Activity,我命名為SecondActivity,方法如下
接者來簡單設計兩個的layout,這裡包含了傳值內容的EditText和負責跳轉Activity的Button。

最後來到今天的重頭戲,使用Intent和bundle的時候。
public class MainActivity extends AppCompatActivity {
    private EditText et1,et2,et3;
    private Button bt1;
    private String content;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = (Button)findViewById(R.id.bt1);
        et1 = (EditText)findViewById(R.id.et1);
        et2 = (EditText)findViewById(R.id.et2);
        et3 = (EditText)findViewById(R.id.et3);
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(et1.getText().toString().matches("")){ ㄎ
                    Toast.makeText(MainActivity.this,"說點甚麼吧",Toast.LENGTH_SHORT).show();
                }
                else if(et2.getText().toString().matches("")){
                    Toast.makeText(MainActivity.this,"請輸入日期~",Toast.LENGTH_SHORT).show();
                }
                else{
                    Bundle bundle = new Bundle();
                    Intent intent = new Intent();
                    //bundle可以根據要傳送的資料選擇put的型態,括號內分別是(key,value)
                    bundle.putString("content",et1.getText().toString());
                    bundle.putInt("month",Integer.parseInt(et2.getText().toString()));
                    bundle.putInt("date",Integer.parseInt(et3.getText().toString()));
                    //把bundle綁入Intent
                    intent.putExtras(bundle);
                    //設定要跳轉的兩個Activity
                    intent.setClass(MainActivity.this,SecondActivity2.class);
                    //啟動intent,執行畫面跳轉
                    startActivity(intent);
                }
            }
        });
    }
}
public class SecondActivity2 extends AppCompatActivity {
    private TextView tx1,tx2,tx3;
    private String content,month,date;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second2);
        tx1 = (TextView)findViewById(R.id.tx1);
        tx2 = (TextView)findViewById(R.id.tx2);
        tx3 = (TextView)findViewById(R.id.tx3);
        //取得bundle,慢慢拆解從Intent中找到附加的資料
        Bundle bundle = getIntent().getExtras();
        //拆出bundle的內容,key為content
        content=bundle.getString("content");
        //拆出bundle的內容,key為mounth,並將Int型態轉換為String
        month = String.valueOf(bundle.getInt("month"));
        //拆出bundle的內容,key為date,並將Int型態轉換為String
        date = String.valueOf(bundle.getInt("date"));
        tx1.setText(content);
        tx2.setText(month);
        tx3.setText(date);
    }
}


今天Intent和bundle就講到這了,謝謝大家~![]()