Các view trong layout của ứng dụng được thêm vào tự động trong R.java chứa trong thư mục Gen. Mỗi khi sử dụng một đối tượng trên layout, đối tượng sẽ được gọi thông qua lớp R.
Như ví dụ từ phần trước:
Mã sử dụng layout:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Mã sử dụng button
Button btn = (Button)findViewById(R.id.mybutton);
Gọi và sử dụng các control cơ bản khác giống như ví dụ button.
BẮT SỰ KIỆN
Ví dụ muốn bắt sự kiện click cho một button control ta sử dụng với cú pháp:
Trên giao diện của ứng dụng Android có thể bao gồm các đối tượng điều khiển (controls) khác nhau để làm nhiệm vụ chuyển tải thông tin hoặc tiếp nhận thông tin từ người dùng cuối. Cũng như các ứng dụng thường thấy trên Windows hay Mac, các thành phần giao diện này bao gồm:
TextView – Là một đối tượng để hiển thị một dòng chữ, một thông báo, một đề nghị,… dưới dạng văn bản. Nội dung văn bản của đối tượng này thường do người lập trình ứng dụng Android thiết lập trước.
EditText – Là một loại thành phần trên giao diện mà người dùng cuối có thể nhập dữ liệu ở dạng văn bản vào.
Button – Đối tượng này thường dùng để đại diện cho 1 chức năng nào đó. Khi người dùng nhấn lên nút lệnh chức năng đó sẽ được gọi thực thi. Nếu lập trình viên Android thiết lập rằng ứng với sự kiện nút lệnh đó được nhấn chức năng kia sẽ thực hiện
ImageView – Là đối tượng dùng để hiển thị hình ảnh do lập trình viên Android chỉ định.
CheckBox – Đối tượng thường dùng để thể hiện trạng thái bật/tắt. Lập trình viên Android thường sử dụng checkbox để cho phép người dùng check (chọn) làm gì đó hay không.
RadioButton– Là loại đối tượng cho phép biểu thị 1 trong 2 trạng thái là đang được chọn hoặc đang không được chọn. Loại đối tượng này thường được sử dụng theo nhóm từ 2 RadioButton trở lên để hỗ trợ việc chỉ được chọn 1 trong 1 tập hợp các RadioButton của cùng 1 nhóm.
RadioGroup– Là đối tượng quản lý nhiều RadioButton, cho phép chỉ chọn 1 RadioButton trong nhóm. Lập trình viên Android thường sử dụng loại điều khiến này để cho người dùng chọn một trong số các tùy chọn xác định nào đó.
ToggleButton– Là loại nút thể hiện 2 trạng thái là ấn hoặc không ấn (on/off).
ProgressBar– Là đối tượng dùng để biểu diễn tiến độ của một công việc nào đó (Tính theo tỉ lệ %).
Để hiểu rõ hơn về các control mời các bạn xem video minh họa.
Trên chỉ là một số điều khiển được sử dụng phổ biến trong tạo giao diện người dùng Android. Android cũng hỗ trợ một vài điều khiển nâng cao hơn như DateTimePicker, hộp nhập AutoComplete,…
Mỗi subclass của lớp ViewGroup cung cấp một cách duy nhất để hiện thị các View nằm trong nó. Dưới đây là một vài kiểu layout bạn có thể xây dựng trong nền tảng Android.
1. Linear Layout Là layout sắp xếp các View con trong nó lần lượt theo duy nhất một chiều, ngang hoặc dọc tùy theo giá trị của thuộc tính android:orientation. View này sẽ tạo ra một thanh cuộn (scrollbar) nếu chiều dài của cửa sổ vượt quá chiều dài của màn hình. Ví dụ về một LinearLayout gồm một EditText và một Button:
android:orientation – xác định hướng hiển thị của các View con.
android:layout_width, android:layout_height – xác định chiều rộng, chiều cao của View với fill_parent là lấp đầy thành phần cha, wrap_content là vừa đủ nội dung View.
android:layout_gravity – căn vị trí cho View (left, right, center).
Với thiết kế này ta sẽ có kết quả như sau:
2. Relative Layout
Layout hiển thị các View con với các vị trí tương đối. Vị trí của mỗi View có thể được xác định so với các View khác hoặc với thành phần cha của chúng (thông qua id). Bạn có thể sắp xếp View sang bên phải, bên dưới một View khác, giữa màn hình, v.v.. Để định nghĩa vị trí cho mỗi View bạn sử sụng nhiều thuộc tính có sẵn từ RelativeLayout.LayoutParams.
Ta tham khảo một vài thuộc tính:
android:layout_alignParentTop
Nếu “true”, cạnh trên của View sẽ trùng với cạnh trên của thành phần cha.
android:layout_centerVertical
Nếu “true”, View này sẽ được xếp vào giữa theo chiều dọc của thành phần cha.
android:layout_below
View sẽ nằm dưới một view khác, và xác định view đó qua id.
android:layout_toRightOf
View sẽ nẳm bên phải so với một View khác.
Ta đến với ví dụ RelativeLayout sử dụng 3 EditText và 1 Button:
TableLayout thể hiện các View dưới dạng lưới. Bạn có sử dụng thẻ <TableRow> để tạo ra các hàng, các cột trong layout. Các ô được tạo có thể chứa các View và layout khác.
Ví dụ về một TableLayout gồm hai dòng, trông mỗi dòng có hai Button:
FrameLayout: Là đối tượng Layout đơn giản nhất. FrameLayout có thể chứa nhiều View, và các View này sẽ được sắp chồng lên nhau. Mỗi khi thêm một View mới, nó sẽ đặt các View này lên góc trên bên trái của giao diện. Nếu các View có cùng kích thước thì đối tượng nằm dưới sẽ bị che khuất. Do đó, thông thường Frame Layout chỉ chứa một View bởi vì nếu FrameLayout chứa nhiều View thì việc tổ chức các View theo tỉ lệ tương thích với kích thước màn hình để các View không chồng lên, che khuất lẫn nhau là rất khó khăn.
AbsoluteLayout: các điều khiển sẽ nằm ở một vị trí tuyệt đối do lập trình viên xác định. Tuy nhiên so với các Layout trước thì nó có hạn chế. Nếu các đối tượng được sắp xếp tại một vị trí tuyệt đối trên màn hình thì nó sẽ không tự động điều chỉnh để tương thích với độ phân giải màn hình và định hướng vị tri.
Trên đây là đôi chút giới thiệu về các layout cơ bản, kết hợp các layout với nhau bạn có thể tạo được một giao diện vừa ý.
Trong lúc code các bạn cũng nên sử dụng các phím tắt sau để tăng khả năng linh hoạt .
Ctrl + K + C: vô hiệu hóa một vùng code thành dạng comment
Ctrl + K + U: Hoàn lại lệnh trên - Ở các phiên bản thấp hơn có lẻ sẽ khác một chút. Có thể nhìn lên menu và kick vào: Edit => Avanced => Comment Slection
Phím thứ 2 là Format code cho ngay hàng thẳng lối. Đôi khi bạn copy code dán vào hoặc lúc gõ ẩu thì nên dùng phím này để Visual tự động đều chỉnh. Trông nó sẽ chuyên nghiệp hơn :D Edit => Avanced => Format Document Ctrl + K + D : Format tất cả
Edit => Avanced => Format Selection Ctrl + K + F: Format vùng bạn chọn
Xóa một vài mã trong đoạn code nhanh, bạn đang gõ một đoạn code, lại lấy thiếu một vài chữ ? Hãy đặt con trỏ tại vị trí cần đặt: Nhấn Backspace để xóa về bên trái Nhấn Delete để xóa về bên phải Có thể bạn thấy thường quá, nhưng lúc làm việc mới thấy nó linh hoạt như thế nào :)
Đặt bookmark ! Việc này cũng không kém phần quan trọng, khi lương line code quá nhiều thì đặt bookmark ở những đoạn mã cần tới lui thường xuyên sẽ rất tiện lợi trong lúc làm việc
Đối với VS 2012: Đặt con trỏ tại dòng cần bookmark Nhấn Ctrl + K + K : Tạo một BM tại điểm con trỏ chuột Nhấn Ctrl + K +N : Nhảy tới BM tiếp Nhấn Ctrl + K +P : Nhảy tới BM sau
Hiển thị gợi ý cú pháp Đặt con trỏ tại mã code cần gợi ý:
Nhấn Ctrl + Space : VS sẽ hiển thị lại lần nữa các gợi ý cú pháp liên quan. Trong VS lúc bạn gõ code tới đâu thì đều có gợi ý code hiện ra. Cộng thêm việc cài các plugin hỗ trợ thì việc phải nhớ hết code không còn đáng lo ngại. Bạn hãy dành thời gian nhớ hết code
Ctrl + K + \ : Xóa tất cả khoảng trống trong dòng code được ta bôi đen ! :)) Ctrl + Shift + L : Xóa dòng hiện tại (tại điểm con trỏ chuột). Xóa cả dòng rất nhanh không cần bôi đen
Shift + Alt + T : Đổi chỗ dòng tại vị trí chuột với dòng dưới nó. Nếu bạn cài Resharp hoặc các plugin khác sẽ xung đột phím tắt, thì khí nhấn như vậy nó sẽ hỏi bạn dùng cho bên nào ? chọn VS nhé
Ctrl + U : Biến các ký tự được bôi đen thanh chữ thường. Ctrl + Shift + U : Biến các ký tự thường thành chữ in HOA.
Để hiển thị số dòng trong Visual studio như hình trên bạn làm như sau: - Vào menu Tools > Options - Mở các node: Text Editor > All Languages > General - Chọn vào Line number
Video hướng dẫn
Thư giản :
Một cậu bé đi vào bể bơi dành cho phụ nữ, mọi người la hét ôm quần áo chạy.
Cậu bé ngạc nhiên:
- Sao thế? Mọi người chưa từng thấy một cậu bé như tôi sao?!
o O o
Sau khi đọc cho chồng nghe bài báo nói về sự đãng trí, bà vợ nói:
- Thật vô lý khi nói đàn bà đãng trí trước đàn ông.
Ông chồng chậm rãi trả lời:
- Họ có lý đấy, bà đã đọc bài báo này cho tôi nghe 3 lần rồi.
o O o
Có một con muỗi vừa bay ra khỏi ký túc xá, vòi nó bị gãy trông thật thảm hại. Con muỗi khác thấy thế liền hỏi:
- Cậu bị sao thế?
- Tớ tưởng là cái chân, ai dè lại là cái điếu cày!!!
o O o
Một người đàn ông say ngất ngư đang đứng ở ga xe lửa, ông ta gọi một chiếc taxi nhờ chở ông ta đến ga xe lửa. Anh tài xế ngạc nhiên:
- Thưa ông, đây là ga xe lửa mà.
- Ồ, thế à - ông ta móc tiền ra đưa cho tài xế và nói - Bữa sau anh nhớ đi chậm một tí lại nhé.
Trước xu hướng phát triển như vũ bảo của nền công nghệ, vấn đề bảo mật thông tin và an toàn trên mạng đã và đang trở thành một thách thức lớn đối với người dùng.
Với sự phát triển của công nghệ như hiện nay, sản phẩm công nghệ đã phần nào đáp ứng được nhu cầu thiết yếu của cuộc sống. Mua sắm, thanh toán trực tiếp, giải trí qua những ứng dụng, game mobile,... là điều mà người dùng được hưởng lợi từ sự phát triển của công nghệ. Tuy nhiên, sự phát triển đó khiến công nghệ trở thành đối tượng cho những kẻ xấu lợi dụng cơ hội trục lợi. Tài chính chuyển dần sang trực tuyến cũng đồng nghĩa với việc hacker có thêm nhiều đất diễn để tấn công người dùng. Các dữ liệu, thông tin cá nhân cũng vì thế mà dễ bị ảnh hưởng, bị khai thác nhiều hơn.
Theo báo cáo của Hãng bảo mật Trend Micro thì trước mỗi cuộc tấn công, hacker luôn phải xác định được đối tượng cần tấn công là ai. Đó có thể là cá nhân, nhóm người có cùng sở thích, cơ quan doanh nghiệp, hoặc thậm chí là cơ quan chính phủ. Ngoài việc tấn công nhằm khai thác thông tin cá nhân, sử dụng trong mục đích trục lợi tài chính, đôi khi những vấn đề ngoại giao tế nhị giữa các nước cũng bị hacker nhắm làm mục tiêu tấn công.
Với sự phát triển của công nghệ như hiện nay, sản phẩm công nghệ đã phần nào đáp ứng được nhu cầu thiết yếu của cuộc sống. Mua sắm, thanh toán trực tiếp, giải trí qua những ứng dụng, game mobile,... là điều mà người dùng được hưởng lợi từ sự phát triển của công nghệ. Tuy nhiên, sự phát triển đó khiến công nghệ trở thành đối tượng cho những kẻ xấu lợi dụng cơ hội trục lợi. Tài chính chuyển dần sang trực tuyến cũng đồng nghĩa với việc hacker có thêm nhiều đất diễn để tấn công người dùng. Các dữ liệu, thông tin cá nhân cũng vì thế mà dễ bị ảnh hưởng, bị khai thác nhiều hơn.
Theo báo cáo của Hãng bảo mật Trend Micro thì trước mỗi cuộc tấn công, hacker luôn phải xác định được đối tượng cần tấn công là ai. Đó có thể là cá nhân, nhóm người có cùng sở thích, cơ quan doanh nghiệp, hoặc thậm chí là cơ quan chính phủ. Ngoài việc tấn công nhằm khai thác thông tin cá nhân, sử dụng trong mục đích trục lợi tài chính, đôi khi những vấn đề ngoại giao tế nhị giữa các nước cũng bị hacker nhắm làm mục tiêu tấn công.
Hãng Microsoft vừa công khai mã nguồn của MS DOS 1.1 và 2.0 cho các lập trình viên dùng vào những mục đích phi thương mại. Microsoft cho biết mục đích của việc làm này là để giúp các thế hệ kỹ thuật viên thời nay hiểu rõ hơn về nguồn gốc của máy tính cá nhân. MS DOS ban đầu được phát triển bởi Microsoft trong đầu những năm 1980s, và nó đã được thiết kế để chạy trên các máy tính cá nhân của IBM. Tuy không phải là hệ điều hành đầu tiên dành cho máy tính, nhưng MS DOS đã nhanh chóng trở nên phổ biến nhất.
Giao diện MS DOS 2.0.
Phiên bản đầu tiên của MS DOS cung cấp khả năng chạy các chương trình khác thông qua dòng lệnh. Nó không có giao diện cửa sổ, desktop hay xem phim, thậm chí người dùng không thể đặt tên tập tin dài hơn 8 ký tự.
Những năm sau đó, hệ điều hành MS DOS trở thành nền tảng cho sự ra đời của Microsoft Windows - hệ điều hành đầu tiên được trang bị giao diện người dùng đồ họa. Những phiên bản Windows đầu tiên bắt đầu có khả năng hỗ trợ một loạt các ứng dụng, bao gồm xử lý văn bản và bảng tính. Đến nay, Microsoft đã dần hoàn thiện hệ điều hành này, mới nhất là Windows 8.1 với điểm nhấn là giao diện Modern UI.
Hơn 3 thập kỷ sau, khi MS DOS 2.0 được phát hành, hệ điều hành mã nguồn mở đã phát triển mạnh mẽ hơn để chạy trên các máy tính để bàn. Vì vậy hành động của Microsoft được xem là phù hợp, tuy nhiên, có thể Microsoft đang khá lo lắng nếu việc công khai mã nguồn một số sản phẩm thuộc dạng "đồ cổ" của mình có thể để lộ bí mật thương mại.
Người dùng có thể tải về tham khảo mã nguồn của MS DOS 1.0 và 2.0 tại đây.