Một trong các vấn dể trong lập trình android đó là làm sao truyền các dữ liệu qua các activity mà các activity đó sẽ liên lạc với nhau truyền dữ liệu ra sao. Có các hình thức để truyền dữ liệu qua các activity như sau: Shared Preferences Database Static class Intents Tuy nhiên có các vấn đề như muốn nguồn dữ liệu đó chuyển qua lại đó được liên tuc ... cái này nối sau đi.. giờ vô cái dễ nhất đi static class: Static class: - biết nói sao... đại khái tạo ra 1 cái class tĩnh khai báo các static method(đại khái vại chứ chả biết nghĩa tiếng việt là gì). khai báo 1 lần thôi rồi từ đó mình sẽ sử dụng nó đi lòng vòng trên tất cả các app. cách khai báo static PHP: public class Config { public static String user = ""; public static String phone = "";} Passing data: Intents Intent là chuyển chuyển activity này sang activity khác. Thì intent hỗ trợ support bạn 3 con đường để chuyển dữ liệu qua các activity. Direct: Gửi dữ liệu ngay sau khi intent chuyển activity kết thúc Bundle: tạo ra 1 bundle mà gửi hết data vào trong đó bundle giúp bạn đem data đi bất cứ đâu. khi kết thúc đa nhiệm bundle cũng kết thúc công việc của mình và ko lưu lại giống như database client như Share Preferences,SQLite Parcelable: Là công việc quét hết dữ liệu của 1 Object chuyển đi **Passing data: Direct Intent tên gọi các method như putExtra(String name," Nội dung") ví dụ bạn đặt tên cái putExtra đó là catra thì putExtra("catra","Cá Phát Tra"). Tuy nhiên việc truyền tải dữ liệu này có phần hạn chế chỉ sử dụng nội dung nhỏ nhẹ kiểu dư liệu như Int Long String, hay char... PHP: Intent i = new Intent(EditActivity.this, ViewActivity.class);i.putExtra("name", edtName.getText().toString();i.putExtra("surname", edtSurname.getText().toString();i.putExtra("email", edtEmail.getText().toString();startActivity(i); Ở đầu activity kia ví dụ GetDataActivity sẽ có những key là name,surname,email bạn đã nhận data từ 3 key đó và bây giờ mình nhận data từ key đó PHP: protected void onCreate(Bundle savedInstanceState) {Intent i = getIntent();String name = i.getStringExtra("name"));String surname = i.getStringExtra("surname"));String email = i.getStringExtra("email"));} **Passing Data: sử dụng Bundle sử dụng bundle một nơi lưu trữ dữ liệu có thể là kiểu string, integer,chars boolean hoặc 1 đối tượng nào đó. thay vì bạn truyền trực tiếp qua direct thì bạn truyền vào 1 nơi chứa luồng dữ liệu gọi là bundle, bundle được sử dụng rất nhiều như truyền dữ liệu qua fragment, PHP: Intent i = new Intent(EditActivity.this, ViewActivity.class);[/I][I]Bundle b = new Bundle();b.putString("name", edtName.getText().toString());b.putString("surname", edtSurname.getText().toString());b.putString("email", edtEmail.getText().toString());i.putExtra("personBdl", b);startActivity(i); Bên activity khác cũng nhận 1 cách tương tự PHP: Intent i = getIntent();Bundle b = i.getBundleExtra("personBdl");[/I][I]String name = b.getString("name");String surname = b.getString("surname");String email = b.getString("email"); Passing data: Parcelable sẽ có 1 bài riêng cho Parcelable và Serializable thì truyền object hay array Object qua lại các activity luôn là vấn đề nan giải