Intent vào Android là phần đa object tin nhắn không đồng hóa cơ mà bạn có thể thực hiện để đề xuất hành động tự những yếu tắc Android khác. Dường như nó cho phép các bạn liên quan với các yếu tắc tự những ứng dụng tương tự cũng tương tự với các thành phần vì các vận dụng khác góp sức. Ví dụ: một Activity hoàn toàn có thể bước đầu một Activity phía bên ngoài để chụp ảnh


*
*
*
*
*
*
*
Các cách tiến hành giúp rước tài liệu ngoài Extra
xxx tại chỗ này thì các bạn thay thế bằng hình dáng dữ liệu phù hợp cùng với key mặt “đóng góp gói”, ví dụ như getBooleanExtra(), getStringExtra(), getIntExtra(),… Dĩ nhiên tmê mẩn số name được truyền vào cách tiến hành này phải và đúng là key mặt “đóng góp gói” luôn luôn.

Bạn đang xem: Intent trong android là gì

Có một số trong những cách tiến hành cần phải gồm tsay mê số lắp thêm nhị, tđắm đuối số đó chính là dữ liệu mang định trường hợp nhỏng hệ thống không tìm kiếm thấy dữ liệu cùng với key mà lại bạn đang cung ứng. Việc hỗ trợ tsi số sản phẩm công nghệ nhì này để tránh một số lỗi có thể xẩy ra đối với lịch trình của chúng ta.

Đoạn code sau vẫn mô bỏng biện pháp đem tài liệu ra khỏi Intent bởi Extra sống onCreate() của Activity. Quý khách hàng rất có thể thấy từng cặp key/value khớp với khi chúng ta đặt dữ liệu vào bên trên kia.


Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); Intent intent = getIntent(); String value1 = intent.getStringExtra("Key_1"); int value2 = intent.getIntExtra("Key_2", 0); boolean value3 = intent.getBooleanExtra("Key_3", false);

Trường đúng theo dùng Bundle

Nhỏng mình nói từ trên đầu, Bundle và Extra ko không giống gì nhau không còn. Nếu như Extra bên trên kia sẽ “xé lẻ” dữ liệu ra với gửi theo từng loại. Thì Bundle để giúp đỡ bạn “đóng gói” dữ liệu lại và gửi nguyên ổn kiện. Tất nhiên Bundle sẽ tiện rộng vào trường đúng theo bạn có nhu cầu gửi và một bộ dữ liệu mang đến các Activity khác biệt.

Ngoài nhiệm vụ “đóng góp gói” dữ liệu để truyền qua lại giữa những Activity, thì Bundle còn được dùng vào một vài trường thích hợp khác, ví như truyền tài liệu qua Fragment nhưng bạn sẽ được cho là ở 1 bài xích nào kia về sau 😂. Nên giỏi rộng hết là bạn hãy học tập cách thực hiện Bundle ngay từ bài này nhé.

Gửi Dữ Liệu

Chỉ gồm phát sinh vài loại code so với Extra bên trên tê thôi, đầu tiên được coi là dòng tạo nên ra Bundle. Sau này vẫn là những loại đặt dữ liệu vào Bundle, những loại này có hơi khác cùng với các cái đặt tài liệu vào Extra một chút, nếu với Extra các bạn cần sử dụng các thủ tục nạp ông chồng với cùng một tên putExtra() thì với Bundle các bạn nên sử dụng đúng phương thức putxxx() với xxx là kiểu dáng dữ liệu bạn phải cần sử dụng.


Khi Bundle đã đựng đầy đủ dữ liệu, bạn cần phải đặt Bundle này vào trong Intent bởi một mẫu code putExtras() (với đừng quên có s nha).

quý khách coi code nhỏng sau:


Intent intent = new Intent(this, ContactActivity.class);Bundle bundle = new Bundle();bundle.putString("Key_1", "Truyền một String");bundle.putInt("Key_2", 5);bundle.putBoolean("Key_3", true);intent.putExtras(bundle);startActivity(intent);
Nhận Dữ LiệuCũng tương tự nhỏng bước gửi thôi, giả dụ sẽ gửi theo phong cách Bundle, thì mặt dấn cũng trở nên buộc phải dìm theo Bundle trước rồi new rước từng tài liệu ra dùng. Để lấy Bundle ra khỏi Intent thì họ có thủ tục getExtras().

Sau Khi lấy Bundle ra khỏi Intent, bài toán tiếp theo sau đang Call cho những pmùi hương thức getxxx() của nó. Các cách tiến hành này của Bundle cũng giống như các phương thức getxxxExtra() của Extra nghỉ ngơi trên. Chỉ không giống một khu vực getxxx() của Bundle thường sẽ có nhị phương thức hấp thụ chồng, giúp đỡ bạn linh hoạt rộng. Thông thường các bạn yêu cầu dùng getxxx() cùng với hai tsi số, những điều đó chúng ta cũng có thể có mang giá tốt trị khoác định mang đến từng cách tiến hành khi cơ mà nó không kiếm được dữ liệu từ key cơ mà các bạn cung ứng, góp tránh một số lỗi không cần thiết.

Xem thêm: Lập Luận Trong Văn Nghị Luận Là Gì, Lập Luận Trong Văn Nghị Luận

Các cách thức góp rước dữ liệu ngoài BundleĐể chắc chắn là thì khi thừa nhận dữ liệu với Bundle, chúng ta nên bình chọn xem Bundle đó có lâu dài hay không (khám nghiệm khác null) trước nhé.


Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if (bundle != null) String value1 = bundle.getString("Key_1", ""); int value2 = bundle.getInt("Key_2", 0); boolean value3 = bundle.getBoolean("Key_3", false); quý khách hàng vừa liếc qua cách thức chuyển dữ liệu tương hỗ giữa những Activity. Giờ là thời điểm bọn họ thực hành phát hành một chút ít cho TourNote rồi.

Thực Hành Gửi Dữ Liệu Từ MainActivity Qua ContactActivity

Thực ra ContactActivity nhưng mà mình thích tìm hiểu sẽ cất hai loại văn bản. Một là lên tiếng về áp dụng, nhị là thông báo giúp sức. Việc rành mạch ngôn từ làm sao được hiển thị sẽ dựa vào tuyển lựa của người dùng bên trên thực đơn công trình của MainActivity. Chính bởi vậy bọn họ sẽ xây dựng ContactActivity làm sao cho rất có thể cảm nhận dữ liệu từ MainActivity chuyển sang, dữ liệu này chỉ dễ dàng và đơn giản báo cho ContactActivity biết người tiêu dùng vừa nhận chọn About App hay Help.

Bạn đang phát âm từng trải của bài xích thực hành từ bây giờ rồi đúng không nào như thế nào. Nên hãy nhớ là họ chỉ kể đến cách thức gửi nhấn tài liệu để ContactActivity đọc được cthị xã gì vẫn xẩy ra thôi nhé, vì vậy bài này họ chỉ sử dụng Toast nhằm kiểm triệu chứng dữ liệu dấn. Còn vấn đề hiển thị đồ vật gi Lúc đã nhận dữ liệu thì sống bài bác sau chúng ta sẽ xây dựng dựng tiếp.

Xây Dựng Các Giá Trị Hằng Số

Quý Khách sẽ biết câu hỏi sử dụng Extra hay Bundle là câu hỏi lưu trữ những tài liệu dạng key/value rồi đưa đi với nhận bọn chúng ngơi nghỉ chỗ khác đúng không nào làm sao. Vậy nhằm đảm bảo an toàn các key luôn luôn được sử dụng đúng, bọn họ nên khái niệm nó là một trong những giá trị tĩnh (static) và hằng (final). Giá trị này đề nghị quan niệm mặt lớp nhận dữ liệu thì giỏi hơn về mặt quản lý code (chủ động thôi nhé, chúng ta có thể định nghĩa một lớp siêng cất các giá chỉ trị key này). Do đó mình thêm những ở trong tính được đánh sáng sau vào ContactActivity.


public class ContactActivity extends AppCompatActivity public static final String KEY_SHOW_WHAT = "show_what"; public static final String VALUE_SHOW_ABOUT = "show_about"; public static final String VALUE_SHOW_HELP = "show_help";
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true);
Override public boolean onOptionsItemSelected(MenuItem item) switch (thành tích.getItemId()) case game android.R.id.home: finish(); return true; return super.onOptionsItemSelected(item);

Gửi Dữ Liệu Từ MainActivity

Dĩ nhiên bên MainActivity, chúng ta sửa đổi một tí nơi kích hoạt ContactActivity, sao cho Intent có thể chứa Bundle nhưng chúng ta muốn như sau.


Overridepublic boolean onOptionsItemSelected(MenuItem item) if(drawerToggle.onOptionsItemSelected(item)) return true; switch (item.getItemId()) case R.id.search: Toast.makeText(this, "Search button selected", Toast.LENGTH_SHORT).show(); return true; case R.id.about: Intent intent = new Intent(this, ContactActivity.class); Bundle bundle = new Bundle(); bundle.putString(ContactActivity.KEY_SHOW_WHAT, ContactActivity.VALUE_SHOW_ABOUT); intent.putExtras(bundle); startActivity(intent); return true; case R.id.help: intent = new Intent(this, ContactActivity.class); bundle = new Bundle(); bundle.putString(ContactActivity.KEY_SHOW_WHAT, ContactActivity.VALUE_SHOW_HELP); intent.putExtras(bundle); startActivity(intent); return true; return super.onOptionsItemSelected(item);

Nhận Dữ Liệu Ở ContactActivity

Như bản thân bao gồm nói, ContactActivity chỉ dấn tài liệu rồi dùng Toast để show ra làm cho minh chứng là nó đã nhận được đúng tài liệu. Còn Việc hiển thị đồ vật gi thì bài học kinh nghiệm sau chúng ta đã nói tiếp nhé. bởi vậy code của ContactActivitgiống như sau.

public class ContactActivity extends AppCompatActivity public static final String KEY_SHOW_WHAT = "show_what"; public static final String VALUE_SHOW_ABOUT = "show_about"; public static final String VALUE_SHOW_HELP = "show_help";
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(true); Intent intent = getIntent(); Bundle bundle = intent.getExtras(); if (bundle != null) String valueShow = bundle.getString(KEY_SHOW_WHAT, ""); Toast.makeText(this, "Show value: " + valueShow, Toast.LENGTH_SHORT).show();
Override public boolean onOptionsItemSelected(MenuItem item) switch (thành tựu.getItemId()) case apk.R.id.home: finish(); return true; return super.onOptionsItemSelected(item);
Kết quả là, tùy vào biện pháp người dùng lựa chọn vào menu tòa tháp mà ContactActivity đã hiển thị Toast nhỏng sau.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *