Tìm hiểu về lập trình android - activity cơ bản

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

Tìm hiểu về lập trình android - activity cơ bản

Bài gửi by t11nguyen on 21/6/2017, 11:14

Tìm hiểu Activity cơ bản trên lập trình android.

Như đã biết thường nhật một vận dụng Android sẽ với rộng rãi Activity, mỗi Activity chịu trách nhiệm vẽ màn hình giao diện quý khách và xử lý những sự kiện diễn ra trên giao diện ngừng thi côngĐây, chẳng hạn như vẽ bản đồ, chụp ảnh…v.v Để với thể chuyển đổi tương hỗ giữa những Activity thì chúng ta tiêu dùng lớp Intent (tiếng Anh với tức thị dự định, tức thị dự kiến làm cho một mẫu gì đó), Intent không những cho phép chúng ta gọi tới những Activity trong cùng một vận dụng mà còn cho phép gọi tới những Activity ở những vận dụng khác nữa.
Tài liệu full về android: https://vietpro.net.vn/lap-trinh-android

Mở một vận dụng khác
Chúng ta đã từng tiêu dùng lớp Intent để vận động tương hỗ giữa những Activity, làm cho như thế là chúng ta đã gọi Intent một phương pháp tường minh, tức thị khai báo rõ ràng tên lớp Activity sẽ được mở bởi Intent. Còn thỉnh thoảng chúng ta muốn mở một vận dụng khác thì lúc ngừng thi côngĐây chúng ta tiêu dùng Intent “ngầm”.

Mở Intent ngầm
những đối tượng Intent ngầm sẽ ko nhận tên của một lớp Activity nào cả, mà thay vào ngừng thi côngĐây là một hành động nào nó, chẳng hạn như mở vận dụng bản đồ, mở trình ưng chuẩn, mở vận dụng gửi mail… và những đối tượng Intent này cũng với thể gửi dữ liệu tới những hành động ngừng thi côngĐây nữa, ví dụ như mở bản đồ tại thành phố Nội, mở trình ưng chuẩn tại liên hệ …v.v Thường thì dữ liệu gửi đi sẽ được lưu trong lớp android.net.Uri.

ví dụ 1:




import android.content.Intent;
import android.net.Uri;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity

@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Uri number = Uri.parse("tel:00841218749385");
Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
startActivity(callIntent);


Đoạn code trên sẽ mở màn hình gọi điện với số điện thoại được chỉ định trong đối tượng Uri.




ví dụ 2:




import android.content.Intent;
import android.net.Uri;
import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity

@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Uri webpage = Uri.parse("");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
startActivity(webIntent);


Đoạn code trên sẽ mở trình ưng chuẩn web mặc định tới website với liên hệ được chỉ định trong đối tượng Uri.

N https://vietpro.net.vn/hoc-html-va-css

thông số khởi tạo đối tượng Intent ở đây ko phải là tên một lớp Activity nào, mà là một hằng số chỉ định một hành động nào ngừng thi côngĐây, ví dụ như Intent.ACTION_VIEW là mở trình ưng chuẩn web, Intent.ACTION_DIAL là mở trình gọi điện… thông số thứ hai là một đối tượng Uri với theo dữ liệu cho hành động ngừng thi côngĐây. Danh sách những đối tượng hành động cùng với kiểu dữ liệu Uri với thể xem ở đây.

một số đối tượng hành động với thể nhận thêm rộng rãi dữ liệu chứ ko chỉ với một, dữ liệu ngừng thi côngĐây ko yêu cầu nhưng với thể truyền đi, lúc ngừng thi côngĐây chúng ta truyền vào bằng phương thức putExtra() như thường, ví dụ:


Đoạn code trên sẽ mở vận dụng gửi tin nhắn.

ví như hệ quản lý thấy với rộng rãi hơn một vận dụng với thể mở được đối tượng Intent này thì hệ quản lý sẽ mở một hộp thoại đựng danh sách những vận dụng ngừng thi côngĐây cho quý khách chọn, còn ví như chỉ với một vận dụng với thể mở được thì hệ quản lý sẽ chạy vận dụng ngừng thi côngĐây luôn.




Kiểm tra Intent với thể mở được hay không
Hệ quản lý Android đảm bảo rằng xoành xoạch sẽ với vận dụng được cài sẵn với thể mở được dữ liệu được gửi đi bởi đối tượng Intent ngầm. tuy nhiên chúng ta nên rà soát trước thì sẽ tốt hơn bởi vì ví như ko với vận dụng nào với thể mở được đối tượng Intent của chúng ta thì chương trình của bạn sẽ bị crash (tức là bị tắt mà ko rõ lý do).

Để biết được đối tượng Intent mà chúng ta định gọi với thể mở được bởi vận dụng nào ngừng thi côngĐây hay ko thì chúng ta tiêu dùng phương thức queryIntentActivities() của lớp android.content.pm.PackageManager và truyền vào đối tượng Intent và chế độ rà soát. Ví dụ:







import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

import java.util.List;

public class MainActivity extends Activity

@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);

PackageManager packageManager = getPackageManager();
List activities = packageManager.queryIntentActivities(webIntent, PackageManager.MATCH_DEFAULT_ONLY);
boolean isIntentSafe = activities.size() > 0;

Toast.makeText(getApplicationContext(), (isIntentSafe ? "Intent is safe" : "Intent is not safe"), Toast.LENGTH_LONG).show();


Chúng ta với thể lấy đối tượng PackageManager từ phương thức getPackageManager() của lớp Activity.

một
hai
List activities = packageManager.queryIntentActivities(webIntent, PackageManager.MATCH_DEFAULT_ONLY);
boolean isIntentSafe = activities.size() > 0;
Phương thức queryIntentActivities() sẽ trả về một đối tượng List đựng danh sách những lớp Activity với thể mở được đối tượng Intent của chúng ta. Ở đây chúng ta chỉ cần xem ví như danh sách này khác rỗng thì tức thị đối tượng Intent của chúng ta với thể mở được

Mở hộp thoại chọn ứng dụng
Ở ví dụ gửi tin nhắn ở trên chúng ta thấy với hai vận dụng với thể mở đối tượng Intent của chúng ta nên hệ quản lý sẽ hiển thị một hộp thoại cho phép quý khách tuyển lựa vận dụng để mở, tuy nhiên ở dưới hộp thoại còn với hai nút là Just OnceAlways, nút Just Once với tức thị ngay tại thời khắc ngừng thi côngĐây chỉ chọn vận dụng ngừng thi côngĐây để tiêu dùng, còn những lần sau thì hệ quản lý sẽ mở lại hộp thoại để quý khách chọn vận dụng khác, còn nút Always tức thị từ nay về sau hệ quản lý sẽ tiêu dùng vận dụng ngừng thi côngĐây luôn chứ ko bắt quý khách phải chọn lại nữa.

tuy nhiên ví như muốn chúng ta với thể yêu cầu hệ quản lý mỗi lần chạy sẽ phải mở hộp thoại chọn vận dụng chứ ko tiêu dùng vận dụng được gắn mác Always.

Để làm cho việc này chúng ta tạo một đối tượng Intent và gọi phương thức createChooser() rồi truyền vào phương thức này đối tượng Intent mà chúng ta muốn tiêu dùng. Ví dụ:

một


import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

import java.util.List;

public class MainActivity extends Activity

@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, "admin@example.com");
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Hello");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Nice to meet you");
startActivity(emailIntent);

String title = "Choose app to open";
Intent chooser = Intent.createChooser(emailIntent, title);

if(emailIntent.resolveActivity(getPackageManager()) != null)
startActivity(chooser);


Phương thức createChooser() sẽ nhận đối tượng Intent mà chúng ta muốn mở và một chuỗi hiển thị tiêu đề cho hộp thoại.

một
hai
if(emailIntent.resolveActivity(getPackageManager()) != null)
startActivity(chooser);
Đoạn code trên chỉ là rà soát xem đối tương Intent của chúng ta với vận dụng nào với thể mở được hay ko thôi, ví như với thì mới cho hiển thị hộp thoại chọn vận dụng.





Hộp thoại chọn vận dụng theo phương pháp này sẽ ko với hai nút Just OnceAlways.
hướng dẫn về https://vietpro.net.vn/hoc-lap-trinh-web-php-co-ban
Bài học kết thúc tại đây, chúc Các bạn thành công trong học tập.

t11nguyen
Binh Nhất
Binh Nhất

Tổng số bài gửi : 36
Tuổi : 28
Đăng ký ngày : 22/04/2017

Xem lý lịch thành viên

Về Đầu Trang Go down

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết