ANDROID_2 ppsx

10 51 0
ANDROID_2 ppsx

Đang tải... (xem toàn văn)

Thông tin tài liệu

ANDROID 1.7.8. Cỏc phương thức của chu kỳ sống Phương thức: onCreate() v Được gọi khi activity lần đầu tiờn được tạo v Ở đơy bạn làm tất cả cỏc cài đặt tĩnh tạo cỏc view, kết nối dữ liệu đến list và .v.v v Phương thức này gửi qua một đối tượngBundle chứa đựng từ trạng thỏi trược của Activity v Luụn theo sau bởi onStart() Phương thức: onRestart() v Được gọi sau khi activity đú được dừng, chỉ một khoảng đang khởi động lần nữa (stared again) v Luụn theo sau bởi onStart() Phương thức: onStart() v Được gọi trước khi một activity visible với người dựng. v Theo sau bởi onResume() nếu activity đến trạng thỏi foreground hoặc onStop() nế nỳ trở nờn ẩn. Phương thức: onResume() v Được gọi trước khi activity bắt đầu tương tỏc với người dựng v Tại thời điểm này activity ở trờn dỉnh của stack activity. v Luụn theo sau bởi onPause() Phương thức: onPause() v Được gọi khi hệ thống đang resuming activity khỏc. v Phương thức này là điển hỡnh việc giữ lại khụng đổi dữ liệu. v Nú nờn được diễn ra một cỏch nhanh chúng bởi vỡ activity kế tiếp sẽ khụng được resumed ngay cho đến khi nỳ trở lại. v Theo sau bởi onResume nếu activity trở về từ ở trước, hoặc bởi onStop nếu nú trở nờn visible với người dựng. v Trạng thỏi của activity cỳ thể bị giết bởi hệ thống. Phương thức: onStop() v Được gọi khi activity khụng thuộc tầm nhỡn của người dựng. v Nỳ cỳ thể diễn ra bởi vỡ nỳ đang bị hủy, hoặc bởi vỡ activity khỏc vữa được resumed và bao phủ nú. v Được theo sau bởi onRestart() nếu activity đang đở lại để tương tỏc với người dựng, hoặc onDestroy() nếu activity đang bỏ. v Trạng thỏi của activity cỳ thể bị giết bởi hệ thống. Phương thức: onDestroy() v Được gọi trước khi activity bị hủy. v Đú là lần gọi cuối cựng mà activity này được nhận. v Nú được gọi khỏc bởi vỡ activity đang hoàn thành, hoặc bởi vỡ hệ thống tạm thởi bị hủy diệt để tiết kiệm vựng nhớ. v Bạn cú thể phơn biệt giữa 2 kịch bản với phương isFinshing(). v Trạng thỏi của activity cú thể được giết bởi hệ thống. 1.7 CÁC THÀNH PHẦN GIAO DIỆN TRONG ANDROID 1.7.1. View Trong một ứng dụng Android, giao diện người dựng được xơy dựng từ cỏc đối tượng View và ViewGroup. Cú nhiều kiểu View và ViewGroup. Mỗi một kiểu là một hậu duệ của class View và tất cả cỏc kiểu đú được gọi là cỏc Widget. Tất cả mọi widget đều cú chung cỏc thuộc tớnh cơ bản như là cỏch trỡnh bày vị trớ, background, kớch thước, lề,… Tất cả những thuộc tớnh chung này được thể hiện hết ở trong đối tượng View. Trong Android Platform, cỏc screen luụn được bố trớ theo một kiểu cấu trỳc phơn cấp như hỡnh dưới. Một screen là một tập hợp cỏc Layout và cỏc widget được bố trớ cú thứ tự. Để thể hiện một screen thỡ trong hàm onCreate của mỗi Activity cần phải được gọi một hàm là setContentView(R.layout.main); hàm này sẽ load giao diện từ file XML lờn để phơn tớch thành mú bytecode. Hỡnh 1-8 Cấu trỳc một giao diện ứng dụng Android 1.7.2. ViewGroup ViewGroup thực ra chớnh là View hay núi đỳng hơn thỡ ViewGroup chớnh là cỏc widget Layout được dựng để bố trớ cỏc đối tượng khỏc trong một screen. Cú một số loại ViewGroup như sau: 1.7.2.1. LinearLayout LinearLayout được dựng để bố trớ cỏc thành phần giao diện theo chiều ngang hoặc chiều dọc nhưng trờn một line duy nhất mà khụng cú xuống dũng. LinearLayout làm cho cỏc thành phần trong nú khụng bị phụ thuộc vào kớch thước của màn hỡnh. Cỏc thành phần trong LinearLayout được dàn theo những tỷ lệ cừn xứng dựa vào cỏc ràng buộc giữa cỏc thành phần. Hỡnh 1-9 Bố trớ cỏc widget sử dụng LinearLayout 1.7.2.2. FrameLayout FrameLayout được dựng để bố trớ cỏc đối tượng theo kiểu giống như là cỏc Layer trong Photoshop. Những đối tượng nào thuộc Layer bờn dưới thỡ sẽ bị che khuất bởi cỏc đối tượng thuộc Layer nằm trờn. FrameLayer thường được sử dụng khi muốn tạo ra cỏc đối tượng cú khung hỡnh bờn ngoài chẳng hạn như contact image button. Hỡnh 1-10 Bố trớ cỏc widget trong FrameLayout 1.7.2.3. AbsoluteLayout Layout này được sử dụng để bố trớ cỏc widget vào một vị trớ bất kỡ trong layout dựa vào 2 thuộc tớnh toạ độ x, y. Tuy nhiờn, kiểu layout này rất ớt khi được dựng bởi vỡ toạ độ của cỏc đối tượng luụn cố định và sẽ khụng tự điều chỉnh được tỷ lệ khoảng cỏch giữa cỏc đối tượng. Khi chuyển ứng dụng sang một màn hỡnh cỳ kớch thước với màn hỡnh thiết kế ban đầu thỡ vị trớ của cỏc đối tượng sẽ khụng cũn được chớnh xỏc như ban đầu. 1.7.2.4. RetaliveLayout Layout này cho phộp bố trớ cỏc widget theo một trục đối xứng ngang hoặc dọc. Để đặt được đỳng vị trớ thỡ cỏc widget cần được xỏc định một mối ràng buộc nào đú với cỏc widget khỏc. Cỏc ràng buộc này là cỏc ràng buộc trỏi, phải, trờn, dưới so với một widget hoặc so với layout parent. Dựa vào những mối ràng buộc đú mà RetaliveLayout cũng khụng phụ thuộc vào kớch thước của screen thiết bị. Ngoài ra, nú cũn cỳ ưu điểm là giỳp tiết kiệm layout sử dụng nhằm mục đớch giảm lượng tài nguyờn sử dụng khi load đồng thời đẩy nhanh quỏ trỡnh xử lý. Hỡnh 1-11 Bố trớ widget trong RetaliveLayout 1.7.2.5. TableLayout Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần bố trớ cỏc widget theo cỏc row và column. Chẳng hạn như, giao diện của một chiếc mỏy tớnh đơn giản hoặc một danh sỏch dữ liệu. Hỡnh 1-12 Bố trớ widget trong TableLayout 1.7.3. Button Sở dĩ widget button được giới thiệu đầu tiờn trong số cỏc widget khỏc là vỡ đơy là đối tượng cú thể núi là được dựng nhiều nhất trong hầu hết cỏc ứng dụng Android. Để thiết kế giao diện với một button ta cú 2 cỏch như sau: Thiết kế bằng XML <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cmdButton1" android:text="Touch me!" android:onClick="touchMe"/> Thuộc tớnh android:onClick="touchMe" được dựng để nắm bắt sự kiện click vào button. Khi sự kiện click button xảy ra thỡ phương thức “touchMe” được khai bỏo trong thẻ thuộc tớnh sẽ được gọi. Nếu trường hợp phương thức “touchMe” chưa được khai bỏo trong file mú nguồn tương ứng thỡ sẽ phỏt sinh một exception. Ngược lại, phương thức “touchMe” sẽ nhận được một đối tham biến là đối tượng View nơi đú phỏt sinh ra sự kiện. Đối tượng View này cú thể ộp kiểu trực tiếp sang kiểu Button vỡ thực chất nỳ là một button. VD: trong file mú nguồn khai bỏo một hàm như sau: public void touchMe(View v){ Button me = (Button) v; Me.setText(“Touched”); } Thiết kế bằng code Thực ra mà nỳi thỡ nếu khụng phải đũi hỏi phải custom lại một widget thỡ khụng cần phải sử dụng tới code. Trong một số trường hợp bắt buộc chỳng ta phải custom cỏc widget để cho phự hợp với hoàn cảnh. Chẳng hạn như trong game, cỏc menu hay cỏc nỳt điều khiển,… Để khai bỏo một Button trong code ta làm như sau: Button cmdButton = new Button(this); cmdButton.setText(“Touch Me!”); cmdButon.setOnClickListener(…); Để custom một widget nào đú ta phải tạo một class kế thừa từ class Widget muốn custom, sau đú sử dụng hàm draw để vẽ lại widget đú như một Canvas. VD: canvas.drawPicture(Picture.createFromStream( )); 1.7.4. ImageButton Cũng tương tự như Button, ImageButton chỉ cú thờm một thuộc tớnh android:src = “@drawable/icon” để thờm hỡnh ảnh vào và khụng cỳ thẻ text <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cmdButton1" android:src="@drawable/icon" android:onClick="touchMe"/> Hỡnh 1-13 ImageButon 1.7.5. ImageView Được dựng để thể hiện một hỡnh ảnh. Nỳ cũng giống như ImageButton, chỉ khỏc là khụng cú hỡnh dỏng của một cỏi button. Code: ImageView iv = new ImageView(this); iv.setImageResource(R.drawable.icon); Hỡnh 1-14 ImageView và ImageButton 1.7.6. ListView Được sử dụng để thể hiện một danh sỏch cỏc thụng tin theo từng cell. Mỗi cell thụng thường được load lờn từ một file XML đú được cố định trờn đú số lượng thụng tin và loại thụng tin cần được thể hiện. Để thể hiện được một list thụng tin lờn một screen thỡ cần phải cỳ 3 yếu tố chớnh: Data Source: Data Source cỳ thể là một ArrayList, HashMap hoặc bất kỳ một cấu trỳc dữ liệu kiểu danh sỏch nào. Adapter: Adapter là một class trung gian giỳp ỏnh xạ dữ liệu trong Data Source vào đỳng vị trớ hiển thị trong ListView. Chẳng hạn, trong Data Source cú một trường name và trong ListView cũng cú một TextView để thể hiện trường name này. Tuy nhiờn, ListView sẽ khụng thể hiển thị dữ liệu trong Data Source lờn được nếu như Adapter khụng gỏn dữ liệu vào cho đối tượng hiển thị. ListView: ListView là đối tượng để hiển thị cỏc thụng tin trong Data Source ra một cỏch trực quan và người dựng cú thể thao tỏc trực tiếp trờn đú. Hỡnh 1-15 Minh hoạ cho một ListView 1.7.7. TextView TextView ngoài tỏc dụng là để hiển thị văn bản thỡ nỳ cũn cho phộp định dạng nội dung bằng thẻ html. VD: TextView textView = (TextView)findViewById(R.id.textView); CharSequence styledText = Html.fromHtml("<i>This</i> is some <b>styled</b> <s>text</s>"); textView.setText(styledText); Nội dung TextView cũng cú thể được định dạng bằng thẻ html ngay trong XML. 1.7.8. EditText Trong Android đối tượng EditText được sử dụng như một TextField hoặc một TextBox. <EditText android:id="@+id/EditText01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="20dip" android:textColor="#000000" android:text="Hello Android!" android:singleLine="true" android:inputType="textCapWords"/> Cỏc thuộc tớnh cần chỳ ý sử dụng EditText đú là: android:inputType = “…” sử dụng để xỏc định phương thức nhập cho EditText. Chẳng hạn như khi bạn muốn một ụ để nhập password hay một ụ để nhập Email thỡ thuộc tớnh này sẽ làm điều đú. android:singleLine = “true” EditText của bạn sẽ trở thành một TextField, ngược lại sẽ là TextBox. 1.7.9. CheckBox Nhận 2 giỏ trị true hoặc false. Đối tượng CheckBox cho phộp chọn nhiều item cựng một lỳc. Khai bỏo: CheckBox cb = new CheckBox(Context …); XML: <CheckBox android:id="@+id/CheckBox01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Check me" android:checked="true"/> 1.7.10. MenuOptions Cỳ 2 cỏch tạo một MenuOptions: Tạo bằng code: public class Main extends Activity { private int searchBtnId = Menu.FIRST; private int scheduleBtnId = Menu.FIRST + 1; private int playBtnId = Menu.FIRST + 2; private int stopBtnId = Menu.FIRST + 3; private int group1Id = 1; private int group2Id = 2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(group1Id,searchBtnId ,searchBtnId,"Search"); menu.add(group2Id,scheduleBtnId,scheduleBtnId,R.string.schedule); menu.add(group2Id,playBtnId ,playBtnId,"Play"); menu.add(group2Id,stopBtnId ,stopBtnId,R.string.stop); // the following line will hide search // when we turn the 2nd parameter to false menu.setGroupVisible(1, false); return super.onCreateOptionsMenu(menu); } } Hỡnh 1-16 Minh hoạ option menu Tạo bằng XML <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:icon="@drawable/icon" android:title="Item1" android:orderInCategory="1" android:id="@+id/item1"> <item android:title="Item 2" android:id="@+id/item2" android:orderInCategory="2"> <menu> <item android:id="@+id/item01" android:title="Sub item 1" android:orderInCategory="1/> <item android:title="Sub item 2" android:id="@+id/item02" android:orderInCategory="2"/> </menu> </item> </menu> public boolean onCreateOptionsMenu(Menu menu) { new MenuInflater( getApplication()).inflate(R.menu.menu_options, menu); return super.onCreateOptionsMenu(menu); } 1.7.11. ContextMenu ContextMenu được sử dụng để hiển thị cỏc tuỳ chọn khi người dựng nhấn dài vào một cell nào đú trong ListView. Để tạo một ContextMenu ta cũng cú 2 cỏch giống như tạo MenuOptions ở trờn chỉ khỏc tờn phương thức. Khi nhấn dài vào một cell trong ListView thỡ phương thức: public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) sẽ được gọi và truyền vào 3 tham số là: v ContextMenu: đối tượng để add cỏc context menu item v View: Đối tượng nơi mà xảy ra sự kiện ContextMenuInfo: Cho biết vị trớ xảy ra sự kiện trong ListView. Để biết được vị trớ xảy ra sự kiện ta làm như sau: AdapterView.AdapterContextMenuInfo info; try { info = (AdapterView.AdapterContextMenuInfo) menuInfo; } catch (ClassCastException e) { return; } info.position Hỡnh 1-17 Minh hoạ context menu 1.7.12. Quick Search Box Một trong những tớnh năng mới trong phiờn bản Android 1.6 đú là Quick Search Box. Đõy là khuụn khổ tỡm kiếm mới trờn toàn hệ thống Android, điều này làm cho người dựng cú thể nhanh chúng tỡm kiếm bất cứ thứ gỡ cỳ trờn chiếc điện thoại Android của họ và cả cỏc tài nguyờn trờn web khi họ đang online. Nú tỡm kiếm và hiển thị kết quả tỡm kiếm ngay khi bạn đang gừ. Nỳ cũng cung cấp cỏc kết quả từ cỏc gợi ý tỡm kiếm web, danh sỏch doanh nghiệp địa phương, và thụng tin khỏc từ Google, chẳng hạn như bỏo giỏ cổ phiếu, thời tiết, và tỡnh trạng chuyến bay. Tất cả điều này cú sẵn ngay từ màn hỡnh chủ, bằng cỏch khai thỏc trờn Quick Search Box (QSB). Hỡnh 1-18 Minh hoạ Quick Search Box . TextBox. <EditText android: id="@+id/EditText01" android: layout_width="wrap_content" android: layout_height="wrap_content" android: textStyle="bold" android: textSize=" ;20 dip" android: textColor="#000000" android: text="Hello Android! " android: singleLine="true" android: inputType="textCapWords"/> Cỏc. android: id="@+id/item1"> <item android: title="Item 2& quot; android: id="@+id/item2" android: orderInCategory=" ;2& quot;> <menu> <item android: id="@+id/item01" android: title="Sub. xmlns :android= "http://schemas .android. com/apk/res /android& quot;> <item android: icon="@drawable/icon" android: title="Item1" android: orderInCategory="1" android: id="@+id/item1"> <item

Ngày đăng: 07/08/2014, 04:22

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan