[Tự học lập trình Android] Bài 8: Tìm hiểu về Toast Notification và Alert Dialog

Tìm hiểu về Toast Notification và Alert Dialog 

 - Toast và Alert Dialog dùng để kiểm tra một điều gì đó, hay đơn giản chỉ là xuất thông báo.
- Cả Toast và Alert Dialog khi hiển thị lên thì các tiến trình (hay các lệnh) khác vẫn cứ tiếp tục làm việc.

1) Toast
- Toast có thể được tạo và hiển thị trong Activity hoặc trong Servive.
- Không cho phép người sử dụng tương tác
- Khi hiển thị sau khoảng thời gian nào đó sẽ tự đóng lại
- Có 2 giá trị mặc định (ta nên sử dụng 2 giá trị này, không nên gõ con số cụ thể vào): hằng số Toast.LENGTH_SHORT hiển thị trong 2 giây, Toast.LENGTH_LONG hiển thị trong 3.5giây.

Cách tạo Toast:
Toast toast=Toast.makeText(YourActivity.this, “Hiển thị gì thì ghi ở đây”, Toast.LENGTH_SHORT);
toast.show();

- Khi nào bạn nên sử dụng Toast?
Theo Tôi thì tùy bạn, bạn có thể sử dụng trong trường hợp hiển thông báo trong các mục thiết lập thông số cấu hình, hay đơn giản chỉ là hiển thị lên để xem thông tin tạm thời nào đó (giống như để kiểm tra một vấn đề sảy ra chẳng hạn).
- Hình dưới đây cho bạn biết 1 Toast đang hiển thị:
Hình 1

2) Alert Dialog
- Hiển thị và cho phép người dùng tương tác, ví dụ bạn nhìn hình Tôi chụp bên dưới, khi nhấn nút “Cancel”, chương trình sẽ hiển thị Alert Dialog hỏi xem có chắc chắn muốn xóa hay không? Bấm No thì không, bấm Yes thì tắt chương trình.
Hình 2

- Cách tạo Alert Dialog:

AlertDialog.Builder b=new AlertDialog.Builder(YourActivity.this);
b.setTitle(“Question”);
b.setMessage(“Are you sure you want to exit?”);
b.setPositiveButton(“Yes”, new DialogInterface. OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
 finish();
}});
b.setNegativeButton(“No”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
 {
  dialog.cancel();
 }
});
b.create().show();


Ý nghĩa của các hàm :
- setTitle : thiết lập tiêu đề cho Dialog
- setMessage: Thiết lập nội dung cho Dialog
- setIcon : để thiết lập Icon
- setPositiveButton, setNegativeButton thiết lập hiển thị Nút chọn cho Dialog (ở đây bạn không quan tâm Nút chấp nhận hay Nút hủy nó thuộc PositiveButton hay NegativeButton vì đó là tùy thuộc bạn chọn. Chú ý là ở đối số thứ 2 của các hàm này sẽ là DialogInterface. OnClickListener chứ không phải View. OnClickListener
- create() để tạo Dialog
- show() để hiển thị Dialog.
Tham khảo: duythanhcse


*******

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo trình: Lập Trình Android [Click để xem]

# Khoá học online:  Lập trình Android toàn tập [Click để xem]

-
-----------------------------------------
Xem thêm bài và ví dụ khác:

 

[Tự học lập trình Android] Bài 3: Các thành phần của ứng dụng Android

Thành phần ứng dụng là các khối cơ bản để xây dựng một ứng dụng Android. Các thành phần này được liên kết lỏng lẻo bởi các ứng dụng bởi tập tin AndroidManifest.xml, tập tin AndroidManifest.xml mô tả mỗi thành phần của ứng dụng và cách chúng tương tác với nhau.
Có bốn thành phần chính có thể được sử dụng trong một ứng dụng Android:


Thành phần
Đặc tả
Activities
Chúng gọi giao diện người dùng và xử lý các tương tác người dùng với màn hình điện thoại thông minh
Services
Chúng xử lý nền kết hợp với một ứng dụng.
Broadcast Receivers
Chúng xử lý thông tin liên lạc giữa hệ điều hành Android và các ứng dụng.
Content Providers
Chúng xử lý dữ liệu và các vấn đề quản lý cơ sở dữ liệu.

1. Activities (Hoạt động)
Một Activities đại diện cho một màn hình duy nhất với một giao diện người dùng. Ví dụ, một ứng dụng email có thể có một hoạt động cho thấy một danh sách các email mới, một hoạt động để soạn một email, và một hoạt động để đọc email. Nếu một ứng dụng có nhiều hơn một hoạt động, sau đó một trong số chúng được đánh dấu là hoạt động được hiển thị khi ứng dụng được khởi chạy.
Một Activities được thực hiện như một lớp con của lớp Activity như sau:
public class MainActivity extends Activity {
 ...
}


2. Services (Dịch vụ)
Một Services là một thành phần chạy trong nền để thực hiện các hoạt động lâu dài. Ví dụ, một dịch vụ có thể chơi nhạc ở chế độ nền trong khi người dùng đang ở một ứng dụng khác nhau, hoặc nó có thể lấy dữ liệu qua mạng mà không ngăn chặn người dùng tương tác với một hoạt động .
Một Service được thực hiện như một lớp con của lớp Service như sau:
public class MyService extends Service {
 ...
}

3. Broadcast Receivers
Broadcast Receivers chỉ đơn giản là phản ứng để phát các tín hiệu từ các ứng dụng khác hoặc từ hệ thống. Ví dụ, các ứng dụng cũng có thể bắt đầu chương trình phát tín hiệu để cho các ứng dụng khác biết rằng một số dữ liệu đã được tải về điện thoại và sẵn sàng cho họ sử dụng.
Một máy thu phát tín hiệu được thực hiện như một lớp con của BroadcastReceiver lớp và mỗi tín hiệu được phát đi như một đối tượng Intent.

public class MyReceiver extends BroadcastReceiver {
 ...
}

4. Content Providers
Content Providers cung cấp nội dung dữ liệu từ một ứng dụng khác theo yêu cầu. Yêu cầu đó được xử lý bằng các phương thức (methods) của lớp ContentResolver. Dữ liệu có thể được lưu trữ trong hệ thống tập tin, cơ sở dữ liệu (database) hoặc ở một nơi hoàn toàn khác.
Một Content Providers được thực hiện như một lớp con của ContentProvider lớp và phải thực hiện một bộ tiêu chuẩn API cho phép các ứng dụng khác để thực hiện các giao dịch.

public class MyContentProvider extends ContentProvider {
 ...
}

5. Additional Components (Các thành phần bổ sung)
Có thành phần bổ sung sẽ được sử dụng trong việc xây dựng của các đơn vị nêu trên. Các thành phần này là:

Thành phần
Đặc tả
Fragments
Đại diện cho một hành vi hoặc một phần của giao diện người dùng trong một hoạt động.
Views
Các yếu tố giao diện người dùng được vẽ trên màn hình bao gồm các nút, danh sách các hình thức, vv
Layouts
Xem phân cấp kiểm soát định dạng màn hình và xuất hiện của các quan điểm.
Intents
Tín hiệu hệ thống kết nối các thành phần với nhau.
Resources
Các yếu tố bên ngoài, các hằng số và drawables hình ảnh..
Manifest
Tập tin cấu hình cho ứng dụng.

*******

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo trình: Lập Trình Android [Click để xem]

# Khoá học online:  Lập trình Android toàn tập [Click để xem]


-----------------------------------------
Xem thêm bài và ví dụ khác:

 

[Tự học lập trình Android] Bài 2: Kiến trúc Android

 Kiến trúc Android

Hệ điều hành Android có thể coi như một ngăn xếp chứa các thành phần phần mềm, tạm chia thành năm phần và bốn lớp chính như hình dưới đây trong sơ đồ kiến ​​trúc .


1. Nhân Linux 
Ở dưới cùng của các lớp là Linux - Linux 2.6. Nhân Linux cung cấp chức năng cơ bản như hệ thống quản lý tiến trình, quản lý bộ nhớ, quản lý thiết bị như máy ảnh, bàn phím , màn hình hiển thị , vv...

2. Thư viện (Libraries)
Phần đầu của nhân Linux có một tập hợp các thư viện bao gồm cả mã nguồn mở trình duyệt web WebKit, các thư viện phổ biến, cơ sở dữ liệu SQLite có thể được coi như một kho lưu trữ hữu ích cho việc lưu trữ và chia sẻ dữ liệu ứng dụng, thư viện để chạy các ứng dụng như ghi âm và video, SSL thư viện chịu trách nhiệm về an ninh Internet, vv...

3. Android Runtime
Đây là phần thứ ba của kiến ​​trúc và có sẵn trên lớp thứ hai từ dưới lên. Phần này cung cấp một thành phần quan trọng được gọi là Dalvik (có thể đã thay đổi theo phiên bản) máy ảo là một loại máy Java được thiết kế đặc biệt và tối ưu hóa cho Android.

Máy ảo Dalvik sử dụng các tính năng cốt lõi Linux như quản lý bộ nhớ và đa luồng, mà là nội tại trong ngôn ngữ Java . Máy ảo Dalvik cho phép tất cả các ứng dụng Android chạy trong tiến trình riêng của nó, với trường hợp riêng của các máy ảo Dalvik .

Android Runtime cũng cung cấp một tập hợp các thư viện lõi cho phép các nhà phát triển ứng dụng Android sử dụng ngôn ngữ lập trình Java để viết các ứng dụng của mình.

4. Khung ứng dụng (Application Framework)
Lớp Application Framework cung cấp nhiều dịch vụ cấp cao hơn cho các ứng dụng dưới dạng các lớp Java. Nhà phát triển ứng dụng được phép sử dụng các dịch vụ này trong các ứng dụng của họ.

5. Ứng dụng (Applications)
Bạn sẽ tìm thấy tất cả các ứng dụng Android ở lớp trên cùng . Bạn sẽ viết ứng dụng và các ứng dụng đó phải được cài đặt trên chỉ lớp này.


*******

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Giáo trình: Lập Trình Android [Click để xem]

# Khoá học online:  Lập trình Android toàn tập [Click để xem]


-----------------------------------------
Xem thêm bài và ví dụ khác:

 

[Giải thuật] Các phương pháp biểu diễn giải thuật

Như các bạn đã biết, trước khi bắt tay vào viết chương trình (coding) chúng ta cần phải xác định được các bước thực hiện hay giải thuật (Algorithms). Ngày nay, với sự phát triển nhanh chóng của phần cứng cũng như các công cụ lập trình làm cho việc học lập trình và lập trình ngày càng đơn giản. Thậm chí lập trình viên không cần xây dựng thuật toán trước. Cách lập trình không thiết kế thuật toán (lập trình chay) chỉ có thể áp dụng cho các chương trình đơn giản, cách lập trình này tiềm ẩn rất nhiều nguy cơ, ngây ra những phức tạp không đáng có trong quá trình tester và sửa lỗi.

Các bạn đang học lập trình hoặc mới bắt tay vào nghề lập trình không nên bỏ qua bước xây dựng giải thuật trước khi coding. Để xây dựng giải thuật chúng ta cũng cần có bộ quy tắc nhất quán để biểu diễn giải thuật. Trong thực tế, cũng như trong các tài liệu về giải thuật người ta hay sử dụng một trong ba phương pháp biểu diễn khác nhau, đó là: Sử dụng ngôn ngữ tự nhiên (xây dựng giải thuật theo từng bước), sử dụng lưu đồ, sử dụng mã giả.

Để hiểu rõ các phương pháp biểu diễn giải thuật, chúng ta cùng xét ví dụ: 
    Xây dựng giải thuật giải phương trình bậc nhất một ẩn ax+b=0, với a,b là số thực nhập từ bàn phím.

- Biều diễn giải thuật bằng các sử dụng ngôn ngữ tự nhiên (liệt kê từng bước) - List each step 

Input: a,b ;
Output: kết quả nghiệm ;

Begin
 Bước 1: Nhập a, b =>Bước 2;
 Bước 2: Xét a = 0
  - Nếu đúng (true) => Bước 3 ;
  - Nếu sai (false) => Bước 4 ;
 Bước 3: Xét b=0 
  - Nếu đúng => Bước 5;
  - Nếu sai => Bước 6;
 Bước 4: x = -b/a => Bước 7;
 Bước 5: In thông báo: Phương trình có vô số nghiệm => Bước 8;
 Bước 6: In thông báo: Phương trình có vô nghiệm => Bước 8;
 Bước 7: In thông báo: Phương trình có nghiệm: x => Bước 8;
 Bước 8: Kết thúc
End.

- Biểu diễn giải thuật sử dụng lưu đồ (flowchart)


- Biểu diễn giải thuật sử dụng mã giả (pseudo code)
Giả mã ngôn ngôn ngữ lập trình Pascal

{Khai báo biến}

BEGIN
 
{Nhập a, b; } 
 
if(a=0) then
  if(b=0) then
       { In ra thông báo: Phương trình có vô số nghiệm ;}
  else 
       { In ra thông báo: Phương trình có vô nghiệm ;}
else
  begin
      x:= -b/a;
      { In ra thông báo: Phương trình có nghiệm: x ;}
  end;

END.


TxT




[Java] Xử lý mảng đối tượng trong Java

Mảng đối tượng trong Java 

Xây dựng chương trình Java gồm các lớp đối tượng sau:

1. Lớp NhanVien có các thuộc tính: họ và tên, ngày tháng năm sinh và địa chỉ. Để phục vụ cho bài toán quản lý lớp NhanVien, ngoài công việc tính lương (thu nhập) thì cần có các hàm thành phần sau: Nhập, hiển thị các thông tin về các nhân viên.

2. Lớp CanBo thừa kế lớp NhanVien, ngoài những thuộc tính nêu trên còn có các thuộc tính: Chức vụ và hệ số lương được che dấu. Lương của CanBo được tính bằng tích hệ số lương với mức lương tối thiểu.

3. Lớp CoQuan có danh sách cán bộ quản lý các hàm:

- Nhập vào một danh sách n cán bộ, n nhập từ bàn phím

- Hiển thị danh sách cán bộ của cơ quan theo bảng, thông tin về cán bộ được hiển thị từng cột trên một dòng

- Sắp xếp danh sách đó theo thứ tự tăng của thu nhập

- Tìm những cán bộ có thu nhập nhỏ hơn d, d nhập vào từ bàn phím

- Hàm main() thực hiện các hàm nêu trên





[Code Java]

/***************************/

/***** class NhanVen ********/

/**************************/

package coquan;
import java.util.Scanner;

public abstract class NhanVien {

    public String hoTen, diaChi, ngaySinh;

    public NhanVien(String hoTen, String diaChi, String ngaySinh){
      this.hoTen=hoTen;
      this.diaChi=diaChi;
      this.ngaySinh=ngaySinh;
}

// Nhap thong tin

public void NhapTT(){
   Scanner inp=new Scanner(System.in);
   System.out.print("- Ho va ten: ");
   hoTen=inp.nextLine();
   System.out.print("- Ngay sinh: ");
   ngaySinh=inp.nextLine();
   System.out.print("- Dia chi: ");
   diaChi=inp.nextLine();
}

// Tinh thu nhap

public abstract float TinhLuong();

// In thong tin nhan vien

  public void InTT(){
     System.out.print("|"+hoTen + "\t \t| " + ngaySinh + "\t\t | "+diaChi+"\t \t| " + TinhLuong() +" | \n");
   }
}





/***************************/

/***** class CanBo **********/

/**************************/

package coquan;

import java.util.Scanner;

public class CanBo extends NhanVien {
    private String chucVu;
    private float heSoLuong;
    final float LCB=1500000.0f;

    public CanBo(String hoTen, String diaChi, String ngaySinh, String chucVu, float heSoLuong){
      super(hoTen, diaChi, ngaySinh);
      this.chucVu=chucVu;
      this.heSoLuong=heSoLuong;
   }

// Nhap thong tin

public void NhapTT(){
   super.NhapTT();
   Scanner inp=new Scanner(System.in);
   System.out.print("- Chuc vu: ");
   chucVu=inp.nextLine();
   System.out.print("- He so luong: ");
   heSoLuong=inp.nextFloat();
}

// Tinh thu nhap

  public float TinhLuong(){
     return heSoLuong*LCB;
  }
}



/***************************/
/***** class CoQuan *****/
/**************************/

package coquan;
import java.util.Scanner;

public class CoQuan {
    public static int n;
    static CanBo[] ds = new CanBo[100];
   
    // Nhap danh sach
    public CoQuan(){
        // khoi tao danh sach CanBo
        for(int i=0;i<100;i++)
            ds[i]=new CanBo("","","","",0.0f);
       
        Scanner inp=new Scanner(System.in);
        System.out.print("- Nhap so luong can bo: \n");
        n=inp.nextInt();
    }
   
    // Nhap danh sach
   void NhapDS(){
      
        System.out.print("NHAP THONG TIN \n");
       
        for(int i=0;i<n;i++){
            System.out.print("+ Nhap thong tin cho can bo thu "+(i+1)+": \n");
            ds[i].NhapTT(); 
        }
    }
   
    // In danh sach CanBo
    void InDS(){
        System.out.print("* IN THONG TIN \n");
        System.out.print("| Ho va ten\t | Nam sinh \t | Dia chi \t | Thu nhap   |\n");
         for(int i=0;i<n;i++)
            ds[i].InTT();
    }
   
    // Sap xep danh sach sinh vien theo chieu tang dan cua thu nhap
    void SapXep(){
        System.out.print("* SAP XEP DANH SACH CAN BO: \n");
        CanBo cb= new CanBo("","","","",0.0f);
        for(int i=0;i<n-1;i++)
            for(int j=i+1;j<n;j++)
                if(ds[i].TinhLuong()>ds[j].TinhLuong())
                {                  
                    cb=ds[i];
                    ds[i]=ds[j];
                    ds[j]=cb;
                }
               
    }

    // Tim canBo co thu thap nho hon d
    void TimCanBo(){
        float d;
        System.out.print("\n + Nhap muc thu nhap can tim:");
        Scanner inp=new Scanner(System.in);
        d=inp.nextFloat();
        System.out.print("* TIM CAN BO CO THU NHAP < "+d+":\n");
        for(int i=0;i<n;i++)
            if(ds[i].TinhLuong()<d)
                ds[i].InTT();
    }
   
    // ham main
    public static void main(String[] args) {
        CoQuan cq=new CoQuan();
        cq.NhapDS();
        cq.InDS();
        // sap xep
        cq.SapXep();
        cq.InDS();
        // tim can bo
        cq.TimCanBo();       
    }   
}

Một số tài liệu và khoá học bổ ích dành cho bạn: 

# Tài liệu: Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu học lập trình [Click để xem]

# Khoá học online: Lập trình Java trong 4 tuần [Click để xem]

Categories

AI (13) AI programming (1) ASP (1) Android (32) App Honeygain (4) Assembly (17) Biểu diễn thuật toán (1) Bubble-Sort (1) Bài giảng (2) Bài giảng lập trình C và Cpp (21) Bài viết hay (108) Bản đồ tư duy (1) C Plus Plus (103) C/C++ (16) CDSL phân tán (1) CSS (2) Cơ sở dữ liệu (11) Danh ngôn lập trình (1) Datamining (4) Genetic Algorithm (1) Giáo trình (2) Giải thuật tiến hóa - thuật toán di truyền (2) Google App Engine (2) Góc học tập (34) HTML (1) Hướng dẫn kiếm tiền online tại nhà (6) Hướng dẫn sử dụng Emu8086 (1) Học lập trình (131) Học lập trình C và CPP qua ví dụ (17) Java (54) Java Căn bản (6) JavaScript (5) Kỹ năng đọc hiệu quả (1) Kỹ thuật lập trình (16) Kỹ thuật đồ họa máy tính (10) Lý thuyết Cơ sở dữ liệu (2) Lý thuyết đồ thị (11) Lập trình Cơ sở dữ liệu (2) Lập trình Python (2) Lập trình căn bản (8) Lập trình hướng đối tượng với Java (7) Lập trình mobile (9) Lập trình mạng (6) Lập trình nhúng (1) Lập trình trí tuệ nhân tạo (2) ML (1) MMO (6) MS Access (1) Machine learning (2) Mạng máy tính (1) Mẹo tìm kiếm trên Google (1) Nghiên cứu khoa học (3) Ngôn ngữ lập trình (2) Những cuốn sách hay mà bạn nên đọc khi còn trẻ (1) Pascal (3) Phương pháp tính toán tối ưu (2) Phương pháp tối ưu (2) Quản lý dự án CNTT (1) SEO (1) SQL (5) Swift (9) Sách hay (4) Thiết kế Web (2) Thuật toán (51) Thuật toán Sắp Xếp -Sort (9) Thuật toán Tìm kiếm - Search (5) Thuật toán di truyền (4) Thực hành Android (2) Tin học văn phòng (5) Tiện ích máy tính (3) Toán rời rạc (13) Treo máy kiếm tiền (3) Trí tuệ nhân tạo (18) Tài liệu tham khảo (5) Tìm hiểu Blockchain (2) Tự học Android (3) Tự học Android qua ví dụ (1) Tự học JavaScript (1) Tự học lập trình (9) Tự học lập trình Android (17) Tự học lập trình C và CPP (14) Tự học lập trình java qua các ví dụ (8) XML (1) blockchain (2) bài giảng quản lý dự án CNTT (1) bài tập java (3) bài tập lập trình (4) cấu trúc dữ liệu giải thuật (15) hướng dẫn viết báo (1) học lập trình Java (11) học máy (5) hợp ngữ (8) lập trình viên (3) phưng pháp đơn hình (2) thuật toán AI (2) tài liệu CNTT miễn phí (4) tính toán tối ưu (1) tự học lập trình iOS (8) tự học lập trình python (1) ví dụ Assembly (1) Đại số gia tử và ứng dụng (1) Đồ họa (4)