Tải bản đầy đủ (.docx) (37 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.89 MB, 37 trang )

Đại Học Bách Khoa Hà Nội
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


PROJECT1

Mục
Lục
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

Lập trình Android

Page 2


PROJECT1

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 !!!!!!

Lập trình Android

Page 3


PROJECT1

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

Lập trình Android

Page 4


PROJECT1
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
Lập trình Android

Page 5


PROJECT1
xml thường được sử dụng để lưu trữ các dữ liệu online (VD như RSS của các báo điện tử ...)
do tốc độ truy cập và lấy dữ liệu rất nhanh so với các loại CSDL khác như SQL hay Oracle,
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.

Để sửa lỗi này chỉ cần làm như sau : menu > project > clean...

Lập trình Android

Page 6


PROJECT1

Ta đã thấy file R.java xuất hiện , từ đó lỗi đã được fix . Activity thực chất là 1 file.java extens
lớ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 đó.

Lập trình Android

Page 7


PROJECT1

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 :

Lập trình Android

Page 8


PROJECT1









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 qua
file 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 “+”

Lập trình Android

Page 9


PROJECT1


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

Lập trình Android

Page 10


PROJECT1

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.

2.

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

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 :
Lập trình Android


Page 11


PROJECT1

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 :

Lập trình Android

Page 12


PROJECT1
Và đây là kết quả :


Khi nhập sai :




Khi nhập đúng :

Và chương trình đã hoàn thành.

Demo Hiển thị
Nhập một chuỗi kí tự , ấn nút, nếu chưa nhập gì thì hiện lên thông báo , nếu đã nhập thì hiển
thị nó lên màn hình android
Đầu thiên thiết kế giao diện như sau :

giao diện
Lập trình Android

code giao diện
Page 13


PROJECT1

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ả :

Lập trình Android

Page 14


PROJECT1

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:

Lập trình Android

Page 15


PROJECT1

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

Lập trình Android

Page 16


PROJECT1

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 :

Lập trình Android

Page 17


PROJECT1

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

Lập trình Android

Page 18


PROJECT1


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ớp
ngườ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.
Lập trình Android

Page 19


PROJECT1

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ào
phầ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:

Lập trình Android

Page 20


PROJECT1

hàm setMessage sẽ cho phép ta đặt một câu hỏi mà ta muốn hỏi người dùng.
tiếp đến , tạo một nút “yes” , khi ấn vào nút này chương trình sẽ kết thúc.

câu lệnh finish(); dùng để kết thúc chương trình.
sau đó tạo một nút “No” , ấn vào thì Dialog sẽ biến mất:

cuối cùng , cũng như Toast ta phải show Dialog ra với câu lệnh

Và đây là kết quả :

Lập trình Android


Page 21


PROJECT1
Tiếp theo là nút “Thông tin” nút này sẽ mở 1 Activity mới có một số những thông tin người
phát triển . nút này không có gì đặc biệt :

Tiếp đến là nút “Điểm cao” , nút sẽ đọc dữ liệu từ bảng high trong CSDL đưa ra màn hình .
Ta đã đưa được dữ liệu vào CSDL giờ đến phần lấy ra . Đầu tiên như thường lệ , ta vẫn phải
truy cập đến CSDL của project :

Một câu lệnh truy vấn SQLite sẽ trả về cho ta 1 Cursor , do đó để lấy dữ liệu ra ta cần khởi
tạo một lớp đối tượng Cursor và lấy dữ liệu từ một bảng đưa vào trong đó. Cursor ở đây cũng
giông như Result trong SQL server , là một tập bản ghi chưa các thông tin ta cần ở một bảng ,
nó có chiều rộng bằng số trường mà ta lấy ra và chiều dài bằng số bản ghi trả về của câu lệnh
truy vấn , để trỏ từ bản ghi này sang bản ghi khác ta sử dụng phương thức moveToNext ,
phương thức này trả vê true nếu còn bản ghi và false nếu ngược lại, từ đó ta sẽ lấy dữ liệu
điểm cao nhất đưa vào đối tượng high() đã tạo ở trên, sau đó đẩy lên cho layout :

Và đây là kết quả :

Lập trình Android

Page 22


PROJECT1

Vào phần chính - Khi ta bắt đầu , chương trình sẽ tự động lấy ra random một câu hỏi có độ

khó tăng dần khi càng lên cao , một câu có 4 đáp án , chọn đúng sẽ hiện màu xanh và sang
câu tiếp theo , sai thì đáp án chọn sẽ biến thành màu đỏ và đáp án đúng sẽ trở thành màu xanh
. nếu điểm của người chơi vượt qua số điểm cao nhất hiện tại thid sẽ lưu lại tên và số điểm
của người đó.
Chúng ta sẽ bắt đầu thiết kế giao diện đơn giản như sau :

Phần TextView sẽ hiển thị câu hỏi , 4 Button tương ứng với 4 đáp án để lựa chọn. Từ đó tạo
một Activity với các component tương ứng , và tất nhiên không thể thiếu biến
SQLiteDatabase.

Lập trình Android

Page 23


PROJECT1
ngoài ra ta có cần thêm một số biến phụ , những biến này như thế nào ta sẽ tìm hiểu sau. Và
đương nhiên ta phải khai báo activity này trong file manifest.
Ý tưởng ở đây là khi người chơi trả lời đúng thì sẽ gọi lại đúng layout này nhưng thay vào đó
là một câu hỏi hoàn toàn mới lấy ra từ csdl với độ khó tương ứng với số thứ tự câu hỏi của
người chơi . Vậy thì khi người chơi bắt đầu trò chơi ActivityMain phải truyền vào cho
Activity này số thứ tự bằng 1 và tiếp đó khi người chơi trả lời đúng số thứ tự này sẽ tiếp tục
tăng lên và truyền cho chính activity được gọi ra, nếu trả lời sai thì số thứ tự này sẽ tự động
được restart về 0 và trở về MainLayout. Vậy thì để giải quyết việc này ta sẽ tạo một class tên
là Variable trong class sẽ có một ArrayList và một String , ta sẽ dựa vào size của ArrayList
để biết số câu hỏi đã trả lời , từ đó truyền số tứ tự của câu hỏi tiếp theo cho activity còn biến
String là key để lấy giá trị đó ra.

Trở lại với ActivityMain ta sẽ bắt sự kiện cho nút bắt đầu chơi , khi ấn vào nút này sẽ xuất
hiện 1 dialog hỏi người chơi đã sẵn sàng chơi chưa , ấn “yes” thì bắt đầu vào trò chơi , “no”

thì không có gì thay đổi. Như ở trên , ta lại gọi đến 1 AlertDialog , khi người chơi chọn “yes”
thì ta sẽ mở Activity câu hỏi ra , đồng thời sử dụng putExtra để truyền sang cho Activity đó
số 1 tương đương với câu hỏi số 1. để thuận tiện trong quá trình gọi lại Activity câu hỏi ta sẽ
sử dụng biến ArrayList trong class Variable vừa tạo , ta sẽ add thêm vào List đó 1 số để size
của nó tăng lên 1 , sau đó truyền size của nó cho Activity câu hỏi :

Vậy là xong ActivityMain , kế đến xử lí sang Activity của câu hỏi. Việc đầu tiên phải làm sau
khi đã khai báo đầy đủ các biến là lấy giá trị vừa được truyền ở ActivityMain sang , số đó sẽ
Lập trình Android

Page 24


PROJECT1
được sử dụng làm số thứ tự của câu hỏi hay độ khó của câu hỏi , ta sẽ dựa vào đó lấy toàn bộ
những câu hỏi có độ khó như vậy trong csdl ra :

Vậy là ta đã có tất cả các câu hỏi với độ khó tương đương số thứ tự câu hỏi mà người chơi trả
lời đến . Từ đây ta sẽ random một trong số các câu hỏi đó và đưa ra màn hình. Ta tạo một
class là Controller ,trong Controller ta sẽ viết phương thức nhận vào tập bản ghi Cursor , đưa
toàn bộ các đối tượng trong đó vào một list sau đó random và trả về một câu hỏi cho Activity:

Từ đó hiển thị câu hỏi lên layout :

Lập trình Android

Page 25



×