1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng ứng dụng Ai là triệu phú đơn giản trên android

37 1,5K 3

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 3,02 MB

Nội dung

Các thành phần trong một project androidBắt đầu với việc tạo một project android , ta vào menu File > new > android application project , nhập tên project và tạo như bình thường.. Có rất

Trang 1

Viện Công Nghệ Thông Tin & Truyền Thông

Bộ Môn : Project 1

Đề Tài : Lập trình Android căn bản

Giảng Viên Hướng Dẫn :TS Bành Thị Quỳnh Mai Sinh Viên Thực Hiện : Vũ Ngọc Tiến - 20133971

Trang 2

Mục lục -2

Lời Nói Đầu -3

1,Các thành phần trong một project android -4

2,Một số chương trình đơn giản -11

Mục Lục

Trang 3

Lời Nói Đầu

Từ rất lâu rồi , khi con người còn ở trong thời kì chưa có công nghệ , mọi thứ đầu phải thực hiện thông qua sự tính toán đơn thuần và kinh nghiệm của con người, thế rồi cuộc cách mạng công nghiệp diễn ra và mang đến cho nhân loại các máy móc thiết bị giúp con người tối thiểu hóa sự vất vả trong lao động chân tay và dần dần là lao động trí óc Từ những sự sáng tạo của con người máy vi tính đã ra đời , phát triển từng bước và kèm theo đó là khái niệm hệ điều hành

Và cho đến thời nay, hệ điều hành không còn là cái gì quá xa lạ với mỗi người chúng ta, nó không chỉ có trong mỗi chiếc máy vi tính đơn thuần nữa mà đã được con người nghiên cứu và ứng dụng vào các thiết bị thông minh như điện thoại, máy tính bảng Một trong số các hệ điều hành đó là Android.

Android là một hệ điều hành thông minh với cực nhiều những chức năng tương tác với người dùng , đa năng hóa một chiếc điện thoại đơn thuần , lập trình về Android theo đó cũng phát triển không ngừng và đang dần trở nên rộng rãi Bài báo cáo sau đây sẽ trình bày những nghiên cứu về lập trình Android cơ bản và một số chương trình minh họa chạy trên hệ điều hành này.

Về lịch sử phát triển và cài đặt em xin phép không nói đến Chắc chắn bài báo cáo không thể tránh khỏi những thiếu sót , kính mong được sự chỉ giáo của các thầy cô và các bạn Xin chân thành cảm ơn !!!!!!

Trang 4

1 Các thành phần trong một project android

Bắt đầu với việc tạo một project android , ta vào menu File > new > android application project , nhập tên project và tạo như bình thường Có rất nhiều trường hợp khi tạo project

để ở các bản SDK có hỗ trợ android-support-v7 sẽ gặp lỗi và lỗi này khá khó sửa nên khi tạo mới 1 project nên để minimun required SDK ở API15 vì bản này không hỗ trợ

support-v7 nên sẽ không gặp lỗi đó và tốc độ xử lí sẽ nhanh hơn nhiều

Sau đây là hinh ảnh khi ta tạo xong một project android :

1 project android sau khi tạo sẽ mở ra 2 tab Activity , 1 file xml và 1 file java ta sẽ thiết kế

và xử lí giao diện của project trên file xml , ở file xml sẽ có 2 phần , 1 phần là graphics layout để ta kéo thả và thiết kế trực tiếp giao diện của project

Trang 5

Trên đây là các component mà phần mềm hỗ trợ người dùng thiết kế giao diện , khi cần bất kìcomponent nào người dùng chỉ việc kéo thả vào giao diện , tuy nhiên nhiều lúc giao diện sẽ khó thiết kế vào những vị trí mà ta mong muốn do mặc định của các layout , từ đó ta sẽ phải thiết kế bằng phần code của file xml :

Phần code của giao diện

Vậy layout là gì mà lại có những mặc định như vậy ? Layout thực chất cũng giống như một ContentPane trong java desktop , là phần nền để đưa các component lên trên đó và quản lí nó theo một trật tự nhất định

XML file có 5 loại layout :

FrameLayout:Layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình

LinearLayout:thêm các thành phần con theo 1 chiều nhất định (ngang hoặc dọc) Đây là layout được sử dụng nhiều nhất

RelativeLayout:thêm các thành phần con dựa trên mối quan hệ với các thành phần khác hoặc với biên của layout

TableLayout:thêm các thành phần con dựa trên 1 lưới các ô ngang và dọc

AbsoluteLayout:thêm các thành phần con dựa theo tọa độ x, y

Sơ qua về XML(Extensible Markup Language) , thật ra việc thiết kế giao diện với xml không hẳn là chức năng chính của xml Bản chất của XML là một cơ sở dữ liệu lưu trữ theo dạng thẻ , cú pháp của xml gần tương tự với một ngôn ngữ quen thuộc khác là html có điều thẻ trong html là được định nghĩa sẵn còn xml hoàn toàn do người dùng định nghĩa

một đoạn code xml cơ bản

Trang 6

tuy nhiên tính bảo mật của nó thấp hơn

một đoạn RSS của báo vnexpress

Đó là sơ qua về file Activity_main.xml, Nhìn chung thì layout vẫn chỉ là 1 giao diện bất động

và không thể tự nó sinh ra các sự kiện được vì vậy ta cần đến các file activity và ở đây project

đã tạo sẵn cho ta 1 file MainActivity.java

thường thì sau khi tạo 1 project android , ấn vào file này ta sẽ thấy bị lỗi do chương trình không tìm được file R như trên , file R ở đây là một file nằm trong packet map với packet chứa các file java mà khi làm việc với project ta sẽ viết ra file R là file mặc định chứa trong

nó tất cả những biến và id của các component trong file xml đã kể trên , nó là trung gian kết nối giữa các file java và các file xml

Trang 7

Ta đã thấy file R.java xuất hiện , từ đó lỗi đã được fix Activity thực chất là 1 file.java extenslớp đối tượng activity có sẵn trong thư viện android (vì vậy mới có lệnh

super.OnCreate(savedÍntanedState)) , ở file activity ta sẽ bắt những sự kiện xảy ra khi thực hiện 1 hoạt động nào đó ở layout , 1 project sẽ có rất nhiều layout nên cũng sẽ cần nhiều activity để map với các layout đó và xử lí sự kiện diễn ra ở các layout đó

Activity là phần quan trọng nhất và đóng vai trò chính trong xây dựng ứng dụng Android

Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo,

nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị

tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng

Vòng đời của 1 activity bao gồm 4 trạng thái :

active (running): Activity đang hiển thị trên màn hình

paused: Activity vẫn hiển thị (visible) nhưng không thể tương tác (lost focus) VD:

một activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện này nhỏ hơn giao diện của activity cũ, do đó ta vẫn thấy được 1 phần giao diện của activity cũ nhưng lại không thể tương tác với nó

stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop

killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc

ưu tiên Các Activity ở trạng thái stop hoặc pausedcũng có thể bị giải phóng và khi nó

được hiển thị lại thì các Activity này phải khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó

Trang 8

Biểu dồ trạng thái của activity

Ngoài Activity thì một chương trình Android còn có những thành phần quan trọng khác

Service: thành phần chạy ẩn trong Android Service sử dụng để update dữ liệu, đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng thấy

Content Provider: kho dữ liệu chia sẻ Content Provider được sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng

Intent: nền tảng để truyền tải các thông báo Intent được sử dụng để gửi các thông

báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn Ngoài ra Intent còn có một chức năng khá hay khác là truyền tham số giữa các

Activity thông qua các phương thức put và get

Notification: đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt

động

Tiếp đến là các thành phần chính khác trong project :

Trang 9

2 thư mục Android 5.0.1 và Android private libraries chứa các thư viện hỗ trợ của

1 project android

Thư mục res là thư mục chứa các tài nguyên của project android , trong đó có các thư

mục nhỏ như drawable-thư mục chứa các hình ảnh và icon dùng cho project, với các

độ phân giải từ thấp đến cao đều có các thư mục drawable tương ứng

Thư mục layout sẽ chứa file activity_main.xml mà ta đã nói ở trên cùng với tất cả các

file layout khác mà ta sẽ tạo vào thiết kế cho project

Tiếp đó là thư mục menu , thư mục này có chứa 1 file main.xml , file này là file chứa

toàn bộ các thông tin về các item menu trong chương trình của ta

Sau đó là thu mục values chứa các file.xml lưu các giá trị mà ta định nghĩa để sử

dụng nhiều trong chương trình

Quan trọng nhất là file AndroidManifest.xml , đây có thể coi là file điều khiển của

một ứng dụng android , tất cả những activity muốn thực hiện được đều phải thông quafile này

Trước khi bắt tay vào làm một số chương trình nhỏ có một kĩ thuật đặc biệt quan trọng cần phải biết , đó là kĩ thuật LogCat LogCat dùng để thay thế cho câu lệnh System.Out.Println trong java thông thường , cửa sổ console giờ sẽ dùng với những chức năng khác như hiển thị trạng thái tải chương trình lên máy ảo

Có nhiều loại LogCat nhưng thường được sử dụng nhất là Log.d Cú pháp đơn giản là

Log.d("TagName","Câu muốn in ra");

Để sử dụng một logcat ta phải khai báo nó , bât của sổ logcat ấn vào dấu “+”

Trang 10

Một hộp thoại sẽ hiện ra ta sẽ copy tagName mà ta đặt và patse vào 2 ô :

Khi ta chạy đến câu lệnh logcat nó sẽ hiện ra dòng chữ ta muốn in ở các tagname của của sổ logcat

Trang 11

Câu lệnh này sẽ giúp ta rất nhiều trong việc kiểm soát chương trinh và gỡ lỗi Đây là kĩ thuật tối quan trọng đối với lập trình Android.

Chương trình đăng nhập

Chương trình nhập vào một tài khoản , nếu đúng thì hiện lên “Đăng nhập thành công” , sai thìhiện lên “Sai tài khoản hoặc mật khẩu”

Đầu tiên tạo môt project tên login , Thiết kế giao diện đơn giản như sau:

ở phần code , cài đặt id như sau :

id ở có thể coi là tên truy cập của một component , id đó sẽ được lưu ở file R.java và dựa vào

đó để file Activity có thể tham chiếu được đến đó

Tiếp theo trong packet activity tạo một class là User với 2 thuộc tính là id và pass :

Trang 12

quay sang MainActivity , ta khai báo các biến tương ứng với các component cần xử lí ở layout , thường thì sẽ để tên biến giống với id của các component để dễ thao tác Sau đó tham chiếu đến layout

Tại sao lại phải ép kiểu ở đây ? Nhìn vào câu lệnh findViewById nghĩa là tìm 1 view theo id vậy nên nó sẽ trả về 1 view , view là lớp cha của các lớp như Button hay EditText nên phải

ép kiểu cho nó thành kiểu tương ứng

Tạo 1 tài khoản mặc định , ở đây em để id : tien , password :123456

bắt sự kiện xảy ra khi ta ấn vào nut đăng nhập bằng SetOnClickListener , hiện thông báo bằng Toast :

Trang 13

Đầu thiên thiết kế giao diện như sau :

Trang 14

chương trình này sẽ nói về giao diện nhiều hơn vì phần code chạy không có gì đặc biệt , Ở đây sử dụng LinearLayout Một số câu lệnh không khó hiểu như backgroud hay textColor , hint em xin phép bỏ qua Layout này sẽ sắp xếp các phần tử lần lượt theo chiều ngang hoặc dọc dựa vào theo thuộc tính android:orientation” ” thuộc tính này có 2 giá trị là vertical và horizontal , vertical là sắp xếp theo chiểu dọc, horizontal là sắp xếp theo chiều ngang ,

các thuộc tính android:layout_width và adroid:layout_height sẽ cài đặt chiều rộng và chiều cao cho layout và các component trên nó , 2 thuộc tính này có 3 giá trị chính là

wrap_content,fill_parent và match_parent, sự khác nhau giữa fill_parent và match_parent chỉ thực sự rõ ràng khi có một khung trên layout còn wrap_content với fill mà match thì rõ ràng hơn :

wrap_content fill_parent

ở đây có một thuộc tính đặc biệt của LinearLayout là weightSum Vậy weightSum là gì ? Chữ Sum đã nói lên tất cả , Sum là tổng vậy weightSum là tổng trọng lượng Ở LinearLayout khi ta biểu diễn các component theo chiều ngang hoặc dọc , nếu muốn set cho các component

đó theo các tỉ lệ (như trên là 30-70) thì ta sẽ sử dụng weightSum, một điều chú ý là khi ta dùng weightSum , tỉ lệ sẽ bị ngược lại Như với chương trình trên ở layout ta để tổng sum =

100 , khi ta đặt cho editText thuộc tính weight = 30 thì nó sẽ chiếm 70% của khung và ngược lại ( cái này em cũng chả biết tại sao) Và đấy là một số các thiết kế cơ bản của một layout và điển hình là layout trên

đây là phần code xử lí

Kết quả :

Trang 15

Demo tạo menu

Tạo ví dụ một vài menu của một Android app

Đầu tiên tạo môt project tên DemoMenu, không cần thiết kế gì đặc biệt

Giả sử ta muốn tạo 2 menu là Setting và Infomation Vào res/menu/main.xml

file main.xml nà là file quản lí các menuItem của project , mọi menu muốn hoạt động thì phảiđược khai báo trong file này từ đây ta tạo 2 ItemMenu là setting và Infomation:

Trang 16

Giờ thì tạo 2 activity cho 2 menu này Các activity này extends lớp Activity trong thư viện Android, sau đó override phương thức onCreate(Bundle), đây là phương thức giúp ta hiển thị

1 layout

Và tất nhiên , cứ khi tạo 1 activity xong thì việc đầu tiên phải làm là vào file

AndroidManifest.xml để khai báo Để ý phần tên của actyvity mà ta đặt

Trang 17

Quay lại với MainActivity , override phương thức public boolean

onOptionsItemSelected(MenuItem item) , thường thì phương thức này sẽ có sẵn ở

MainActivity khi ta tạo project nhưng sẽ có một số bản SDK API thấp sẽ không có

Phương thức này nhận vào một MenuItem , từ đó ta sẽ dựa vào id của từng item trong menu

để gọi ra Activity tương ứng bằng lớp đối tượng Intent

khi khởi tạo đối tượng intent ta sẽ truyền vào tên activity mà ta đặt ở file Manifest lúc nãy , intent sẽ dựa vào đó để chuyển hướng sang activity tương ứng Câu lệnh setActivity(Intent intent) nhận vào một Intent , khởi tạo activity mà intent đó đang trỏ tới đồng thời đóng activity hiện tại

Giờ thì tạo layout cho các menu :

Trang 18

infomationLayout settingLayout

Do nãy ta khai báo layout infomation ở file manifest là

android:theme="@android:style/Theme.Dialog" nên nó sẽ có hình hiển thị kiểu như trên.giờ quay lại với infoActivity và settingActivity , ta setContentView(int id) truyền vào id của layout là OK

Kết quả :

Game Trắc nghiệm đơn giản

Trang 19

Game có giao diện đồ họa đơn giản , mô phỏng theo game ai là triệu phú, tính năng đơn giản hơn.

Để làm những game này cần tìm hiểu một số kiến thức như AlertDialog, SQLite DB Đầu tiên là về SQLite, đây là CSDL được tích hợp sẵn khi cài đặt java android, các câu lệnh truy vấn csdl không khác gì so với SQL Server thông thường , co điều SQLite không hỗ trợ một số tính năng như store proceduce các thao tác như thêm,xóa đều thông qua code java.Bắt đầu thực hiện chương trình , về phần giao diện thiết kế đều sử dụng những kiến thức thông thường ở các sample trước không có gì nói tới nhiều

Đầu tiên , xác định các đối tượng , ở đây sẽ có 2 đối tượng là câu hỏi và người chơi Vì game này có đặc thù là một câu hỏi chỉ có 4 câu trả lời và trong đó chỉ có 1 đáp án đúng, mỗi câu hỏi có độ khó khác nhau tương ứng với các mốc câu hỏi Từ đó ta sẽ tạo lớp câu hỏi có các thuộc tính như sau :

Tiếp theo đến lớp người chơi , người chơi ở đây không cần quá nhiều thông tin , thực chất lớpngười chơi ở đây chỉ dùng để lưu kết quả cao nhất đã đạt được , vì vậy ta sẽ cần các thuộc tính là tên và số điểm

Trang 20

Bắt đầu vào ActivityMain, ta khai báo các biến, trong đó có biến truy cập csdl:

biến này giúp ta truy cập vào hệ thống csdl của android, từ đó tạo một csdl mới

Câu lệnh này giúp ta tạo một Database mới nếu chưa có hoặc truy cập một DB nếu đã có, tạmđặt tên là “whorich1” cho giống tên của project

sau khi có csdl ta tiếp tục tạo các bảng tương đương với các đối tượng đã tạo ở trên:

đã xong phần tạo bảng Giờ đưa dữ liệu vào :

Tạm thời là như vậy , câu lệnh execSQL sẽ thực thi một câu truy vấn csdl mà ta truyền vào,

từ đó các câu lệnh thêm , sửa , xóa đều sẽ được thực hiện

Giờ ta đã có dữ liệu , tạm như vậy đã , giờ ta sẽ thiết kế sang các phân nhỏ khác trước khi vàophần chính Đầu tiên là nút thoát Yêu cầu của nút thoát là khi ấn vào sẽ bật ra một Dialog hỏi xem có muốn thoát hay không , nếu ấn vào có thì sẽ thoát , không thì thôi ở đây muốn làm được như vậy ta phải tìm hiểu AlertDialog Ở AlertDialog ta sẽ tự tạo ra các nút và bắt các sự kiện cho nó đầu tiên khởi tạo một AlertDialog:

Ngày đăng: 11/09/2016, 22:41

TỪ KHÓA LIÊN QUAN

w