Dialogs – Toast Notifications – Exception


Bài số 6 của Blog Android cơ bản: http://wp.me/p6SFw5-rk

Nội dung đạt được

– Tài liệu cần tham khảo: Dialogs Notifications Toasts
– Tài liệu cần tham khảo: Tutorials Point
– Mục tiêu: Hiểu được cách làm việc với Dialog.
– Làm việc với Toast
– Xử lý ngoại lệ (Exception)

Tips:

– Đôi lúc mình vẫn dùng máy ảo mặc định với thông số: Nexus 5X API 24 – Android 7.0 – 1080×1920: 420dpi – CPU: arm 1GB.
– Bạn có thể sử dụng BlueStarks , Genymotion hay NOX, DROID 4X, REMIX OS
– Kết nối Android Studio với NOX: link
Bạn nên sử dụng Genymotion ^^

Dialogs

– Là cửa sổ nhỏ, xuất hiện đè lên Activity hiện tại.
– Khi Dialog xuất hiện, Activity sẽ mất focus và dialog sẽ nhận tương tác của người dùng.
– Dùng để hiển thị cảnh báo, hoặc thực hiện các tác vụ cần confirm, cần nhập xuất liên quan đến tiến trình hiện tại của phần mềm.
– Có thể dùng các Dialog có sẵn như: AlertDialog, ProgessDialog, DatePickerDialog, TimePickerDialog, hoặc tự tạo ra dialog tùy chỉnh dựa vào Dialog Object.

1. AlertDialog

Khi tạo 1 AlertDialog ta nên xác định:

Có tiêu đề (title) hay không.
Có nội dung (text message) gì.
Có bao nhiêu button.
Có danh sách chọn hay không (checkbox, radio button).

– Tạo AlertDialog

//Alt +Enter để import thư viện tương ứng
public class MainActivity extends AppCompatActivity {
 AlertDialog.Builder myDialog;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
   myDialog = new AlertDialog.Builder(this);
 myDialog.setTitle("Cho tui hoi");
 myDialog.setMessage("Ban khoe khong");
 myDialog.setIcon(R.mipmap.ic_launcher);// tùy chỉnh hình bằng cách bỏ vào hình ảnh bất kỳ
//vào thư muc drawable hoặc mipmap, lúc này ta thay như sau
// myDialog.setIcon(R.drawable.hinhcuatui);
 } } 

– Thêm nút tương tác

myDialog.setPositiveButton("yes",new DialogInterface.OnClickListener(){   //setPositiveButton, nút hiển thị vị trí đầu bên trái

 public void onClick(DialogInterface dialog,int which){
 //TODO Auto-generated method stub
 MainActivity.this.finish(); // đóng Activity => Thoát hoàn toàn ứng dụng
 dialog.cancel(); // đóng Dialog, Activity tiếp tục hoạt động
 }
});
// Có thể thay "setPositiveButton" bởi: setNagetiveButton, setNeutralButton để tạo thêm chức năng cho dialog</pre>
// Hiển thị AlertDialog
AlertDialog alertExample = myDialog.create();
alertExample.show();

a
2. Progress Dialog

public class MainActivity extends AppCompatActivity {

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

         myprogress=ProgressDialog.show(this,"Processing","Please wait...");

 // Dùng hàm dimiss() để tắt Progress
     }
 }

b
Sử dụng Dialog này với Thread hoặc các thao tác xử lý.

Ở phần Dialog này, bạn cần tìm hiểu thêm 1 số dạng Dialog khác và tự tùy chỉnh để có Dialog phù hợp với ứng dụng.

 

Toast Notifications

– Là thông báo hiện trên màn hình trong khoảng thời gian đã định.
– Chỉ chiếm 1 vùng không gian nhỏ vừa và không làm ảnh hưởng đến các hoạt động tương tác giữa người dùng với Activity.
– Hiện lên, mờ dần và không nhận tương tác.

 Toast.makeText(this.getApplicationContext(),
                "My name is Toast", Toast.LENGTH_LONG).show();

Exception

– Lỗi phát sinh khi sử dụng phần mềm, do môi trường ứng dụng không phù hợp, hoặc nhận dữ liệu sai từ người dùng.
vd: Chương trình chia “Tử” và “Mẫu”, người dùng nhập “mẫu” là số 0, lúc này lỗi toán học sẽ xảy ra.

try – catch – finally

try
{
 //các lệnh có thể xảy ra exception
}
catch (ExceptionType e1) //ExceptionType: loại exception sẽ giải quyết
{
 //các lệnh thực thi khi có exception</pre>
}
catch (ExceptionType e2)
{
//các lệnh thực thi khi có exception
}
catch (ExceptionType e3)
{
//các lệnh thực thi khi có exception
}
//...
finally
{
// các lệnh luôn được thực thi dù có hay không exception
}

Thực thi các lệnh trong try, nếu không xảy ra exception thì nhảy xuống khối finally để thực hiện, nếu xảy ra exception trong khối try, thì catch sẽ bắt lỗi và thực hiện các lệnh tương ứng rồi mới xuống khối finally.
Khối finally luôn được thực hiện.

c

Quay lại game True False ở Bài 3 bạn có thể thêm một số chức năng và sử dụng dialog, exception…
Bài số 6  kết thúc ở đây, bạn hãy tìm hiểu thêm về các loại Dialog, Toast cũng như thuộc tính của chúng được gợi ý trong Android Studio.

Bài tiếp theo chúng ta sẽ thực hành với nhập/ xuất File.


Cảm ơn bạn đã theo dõi blog.
Nhiều ngày tốt lành!

Advertisements

Cho mình biết cảm nhận của bạn nhé

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s