Sử Dụng Intent Trong Android

Intent vào Android là phần đông object tin nhắn ko nhất quán nhưng bạn có thể sử dụng nhằm tận hưởng hành động tự những yếu tắc Android không giống. Ngoài ra nó được cho phép các bạn liên hệ với những yếu tố từ bỏ các ứng dụng tương tự như cũng tương tự với các thành phần vì các ứng dụng khác góp sức. Ví dụ: một Activity rất có thể ban đầu một Activity bên ngoài để có thể chụp ảnh


*
*
*
*
*
*
*
Các cách làm giúp lấy dữ liệu ngoài Extra
xxx tại đây thì bạn sửa chữa thay thế bởi mẫu mã dữ liệu cân xứng với key bên “đóng gói”, ví dụ như getBooleanExtra(), getStringExtra(), getIntExtra(),… Dĩ nhiên tsi số name được truyền vào cách thức này yêu cầu chính xác là key bên “đóng góp gói” luôn.

Bạn đang xem: Sử Dụng Intent Trong Android

Có một trong những cách làm rất cần phải có tmê mẩn số máy nhì, tđê mê số kia đó là tài liệu mang định nếu nlỗi hệ thống không tìm kiếm thấy tài liệu với key mà các bạn đã cung cấp. Việc hỗ trợ tđắm đuối số sản phẩm công nghệ hai này để tách một số trong những lỗi hoàn toàn có thể xẩy ra đối với lịch trình của bọn họ.

Đoạn code sau vẫn mô phỏng bí quyết lấy tài liệu thoát khỏi Intent bởi Extra nghỉ ngơi onCreate() của Activity. Quý Khách rất có thể thấy từng cặp key/value khớp với khi bạn đặ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 thích hợp dùng Bundle

Như bản thân nói từ đầu, Bundle và Extra ko không giống gì nhau không còn. Nếu như Extra bên trên tê vẫn “xé lẻ” dữ liệu ra và gửi theo từng loại. Thì Bundle sẽ giúp đỡ bạn “đóng góp gói” dữ liệu lại cùng gửi nguyên khiếu nại. Tất nhiên Bundle vẫn nhân thể hơn trong trường phù hợp bạn có nhu cầu gửi và một bộ tài liệu cho những Activity khác nhau.

Ngoài trách nhiệm “đóng góp gói” dữ liệu nhằm truyền hỗ tương giữa các Activity, thì Bundle còn được dùng trong một số trong những ngôi trường thích hợp không giống, ví như truyền dữ liệu qua Fragment mà các bạn sẽ được biết ở một bài bác nào kia trong tương lai 😂. Nên giỏi rộng không còn là các bạn hãy học bí quyết sử dụng Bundle ngay trường đoản cú bài xích này nhé.

Gửi Dữ Liệu

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


Khi Bundle đã đựng đủ dữ liệu, bạn cần phải đặt Bundle này vào trong Intent bằng một mẫu code putExtras() (cùng hãy nhờ rằng có s nha).

Quý khách hàng 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ư như bước gửi thôi, nếu như sẽ gửi theo kiểu Bundle, thì mặt dấn cũng trở nên bắt buộc thừa nhận theo Bundle trước rồi mới rước từng tài liệu ra dùng. Để lấy Bundle thoát khỏi Intent thì chúng ta bao gồm cách làm getExtras().

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

Xem thêm: Sơ Đồ Cấu Trúc Bài Văn Nghị Luận Xã Hội, Cách Làm Bài Văn Nghị Luận Xã Hội Lớp 12

Các thủ tục giúp lấy tài liệu ngoài BundleĐể chắc chắn là thì Lúc nhấn dữ liệu với Bundle, chúng ta nên kiểm soát xem Bundle đó bao gồm trường thọ hay là 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 phương thức đưa dữ liệu hỗ tương giữa những Activity. Giờ là cơ hội chúng ta thực hành thực tế thành lập một ít cho Tourcảnh báo rồi.

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

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

Quý khách hàng vẫn hiểu đòi hỏi của bài xích thực hành thực tế từ bây giờ rồi đúng không nào. Nên hãy nhờ rằng họ chỉ nói tới cách thức gửi nhận dữ liệu để ContactActivity gọi được cthị xã gì đang xảy ra thôi nhé, cho nên vì thế bài này họ chỉ sử dụng Toast nhằm kiểm chứng dữ liệu nhận. Còn vấn đề hiển thị vật gì khi đã nhận được tài 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 vẫn biết vấn đề sử dụng Extra hay Bundle là việc tàng trữ những tài liệu dạng key/value rồi chuyển đi và thừa nhận chúng sống vị trí khác đúng không nào như thế nào. Vậy nhằm đảm bảo các key luôn luôn luôn luôn được sử dụng đúng, chúng ta nên khái niệm nó là một trong những giá bán trị tĩnh (static) và hằng (final). Giá trị này nên định nghĩa bên lớp dìm dữ liệu thì giỏi hơn về khía cạnh thống trị code (tự động thôi nhé, chúng ta cũng có thể quan niệm một tờ chuyên chứa những giá chỉ trị key này). Do đó bản thân thêm các thuộc 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 phầm.getItemId()) case app android.R.id.home: finish(); return true; return super.onOptionsItemSelected(item);

Gửi Dữ Liệu Từ MainActivity

Dĩ nhiên bên MainActivity, bọn họ sửa đổi một tí địa điểm kích hoạt ContactActivity, sao cho Intent rất có thể chứa Bundle mà họ hy vọng nhỏng sau.


Overridepublic boolean onOptionsItemSelected(MenuItem item) if(drawerToggle.onOptionsItemSelected(item)) return true; switch (cửa nhà.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

Nlỗi mình bao gồm nói, ContactActivity chỉ thừa nhận dữ liệu rồi dùng Toast để show ra làm vật chứng là nó đã nhận được đúng dữ liệu. Còn việc hiển thị vật gì thì bài học sau chúng ta sẽ nói tiếp nhé. do đó code của ContactActivitgiống hệt như sau.

Xem thêm: Angela Phương Trinh Sinh Năm Bao Nhiêu, Angela Phương Trinh Cao Bao Nhiêu

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_HELPhường. = "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ắng lợi.getItemId()) case android.R.id.home: finish(); return true; return super.onOptionsItemSelected(item);
Kết trái là, tùy theo phương pháp người dùng chọn vào menu thành công mà ContactActivity sẽ hiển thị Toast như sau.


Chuyên mục: Công nghệ