Tìm hiểu một số kiểu lập trình sự kiện 1 - học lập trình android cơ bản
Học lập trình android cơ bản tại ITP Việt Nam là khóa học cơ bản, chất lượng nhất tại Hà Nội, sẽ cung cấp cho bạn những nền tảng vững chắc phát triển sau này.
Chúng ta đã tìm hiểu ba control cơ bản đầu tiên khi lập trình giao diện ứng dụng android: TextView, EditText, Button. Với những control này thì có những kiểu lập trình sự kiện cơ bản nào tương ứng. Chúng tôi sẽ giới thiệu với các bạn ngay bây giờ.
1. Onclick in XML
Xét ví dụ: cộng hai số nguyên, thiết kế giao diện như hình bên dưới:
Các Layout bạn cần có trong giao diện trên:
Ta cần xây dựng chương trình sao cho khi nhấn nút “Tổng 2 số”, chương trình sẽ xuất hiện kết quả: 80+33=113.
Đối với button “tổng 2 số” chúng ta sử dụng sự kiện Onclick trong XML với các thuộc tính sau:
Trong đoạn lệnh trên, ta đã sử dụng android: onClick = “btn_tong2so”, tức là ta đã gán một sự kiện Click cho button này, sự kiện này mang tên là btn_tong2so. Tương ứng với sự kiện này chúng ta khai báo 1 hàm btn_tong2so ở trong Activity class như sau:
Khi chạy ứng dụng chúng ta sẽ thu được kết quả như hình dưới đây:
2. Inline anonymous listener
Xét ví dụ: viết chương trình chuyển đổi năm dương lịch qua năm âm lịch, giao diện chương trình dưới đây:
Trước tiên bạn hãy tham khảo các Layout cần có trong giao diện (^_^). Chú ý chúng ta tạo một anonymous listener.
Khi người sử dụng nhập vào EditText giá trị là 1 năm dương lịch bất kỳ nào đó rồi nhấn nút “Chuyển đổi”, chương trình sẽ chuyển năm dương lịch thành năm âm lịch. Trong ví dụ trên nếu sử dụng nhập năm 2013 sẽ ra năm âm lịch là “Quý tỵ”.
Để chuyển từ năm dương lịch sang năm âm lịch bàn cần biết một số thông tin sau:
Bây giờ chúng ta tiến hành gán sự kiện cho button “Chuyển đổi” (id = button1), mở Activity class lên sửa lệnh như bên dưới:
Bạn tự đưa lệnh vào Bước 1, Bước 2, bước 3 ở trên. Cách lấy dữ liệu nhập vào từ EditText đã hướng dẫn ở phần Onclick in XML, làm theo cái này để lấy được giá trị là năm dương lịch ra, sau đó lấy năm này xử lý theo bảng Can và Chi như hướng dẫn thì Ta sẽ ra được năm Âm lịch tương ứng.
3. Activity is listener
Trong cách viết sự kiện này thì Activity sẽ implements interface có kiểu sự kiện (rất nhiều loại interface).
Trong phần này chúng ta chỉ xét vị dụ cho trường hợp button: xây dựng ứng dụng tính chỉ số khối cơ thể (BMI). Cách tính chỉ số:
BMI = W / (H)2
Gọi W là khối lượng của một người (tính bằng kg) và H là chiều cao của người đó (tính bằng m), chỉ số khối cơ thể được tính theo công thức:
Phân loại mức đô đánh giá:
BMI < 18: người gầy
BMI = 18 – 24,9: người bình thường
BMI = 25 – 29,9: người béo phì độ I
BMI = 30 – 34,9: người béo phì độ II
BMI > 35: người béo phì độ III
Chúng ta sẽ thiết kế giao diện như hình dưới đây:
Các Layout cần có cho giao diện:
Nội dung Code trong Activity:
Mã:
import java.text.DecimalFormat; import android.os.Bundle;
import android.app.Activity; import android.view.View;
import android.view.View.OnClickListener; import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity
implements OnClickListener{
Button btnChandoan;
EditText editTen,editChieucao, editCannang,editBMI,editChandoan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
btnChandoan=(Button) findViewById(R.id.btntinhBMI);
btnChandoan.setOnClickListener(this);
editTen=(EditText) findViewById(R.id.editten);
editChieucao=(EditText) findViewById(R.id.editchieucao);
editCannang=(EditText) findViewById(R.id.editcannang);
editBMI=(EditText) findViewById(R.id.editBMI);
editChandoan=(EditText) findViewById(R.id.editChanDoan);
}
@Override
public void onClick(View arg0) {
double H=Double.parseDouble(editChieucao.getText()+””);
double W=Double.parseDouble(editCannang.getText()+””);
double BMI=W/Math.pow(H, 2); String chandoan=””;
if(BMI<18)
{ chandoan=”Bạn gầy”;}
else if(BMI<=24.9)
{ chandoan=”Bạn bình thường”; }
else if(BMI<=29.9)
{ chandoan=”Bạn béo phì độ 1″; }
else if(BMI<=34.9)
{ chandoan=”Bạn béo phì độ 2″;}
else
{chandoan=”Bạn béo phì độ 3″; }
DecimalFormat dcf=new DecimalFormat(“#.0″);
editBMI.setText(dcf.format(BMI));editChandoan.setText(chandoan);
}}
Bạn quan sát Activity này sẽ implements interface OnClickListener. Bản thân interface OnClickListener có mộ Abstract Method là onClick(View arg0) nên ta phải Override nó. Để Button có thể hiểu được sự kiện thì Ta phải gọi dòng lệnh: btnChandoan.setOnClickListener(this); bản thân Activity là một sự kiện nên ta dùng thisđể truyền vào hàm. Chúng ta sử dụng thêm: DecimalFormat dcf=new DecimalFormat(“#.0“); với mục địch định dạng 1 số lẻ thập phân, bạn muốn 2 số lẻ thập phần thì ghi “#.00″ hay muốn 3 thì “#.000″ …
Còn tiếp .....
0 nhận xét: