Findviewbyid là gì
[Android căn bản] Bài 4:Bắt sự kiện trong Android.Cập nhật lần cuối: 01 Tháng Tư 2018
2,286 Lượt xem Đánh giá bài viết
Giới thiệu.Trong chúng ta ai cũng dùng điện thoại để lướt Facebook, chơi game, nghe nhạc và sử dụng các ứng dụng đúng không nào và bạn có thấy là khi bạn nhấn vào một nút nào đó thì sẽ có một công việc nào đó được thực hiện đúng không như bạn đăng nhập vào ứng dụng Facebook thì khi bạn nhấn đăng nhập thì ứng dụng bắt đầu đăng nhập vào tài khoản của bạn đúng không nào, vậy làm thế nào để làm được việc đó trong Android. Ví dụ tôi có 1 ứng dụng đơn giản màn hình bao gồm một Button và một Textview khi tôi nhấn cái Button thì sẽ hiển thị câu xin chào mọi người lên Textview. Ví dụ sự kiện trong Android Giao điện khá đơn giản phải không nào, đây là code giao diện: Như tôi đã nói ở bài trước đây mới chỉ là cái giao diện mặt ngoài của ứng dụng mà thôi khi bạn nhấn vào cái nút press kia thì cũng chả có chuyện gì xảy ra đâu, vì thế chúng ta cần lập trình cho phần hồn của cái Activity này. Trong Android có rất nhiều cách để gán sự kiện cho view nhưng tôi xin giới thiệu hai cách hay được sử dụng nhất còn mấy cách kia nếu bạn có hứng thú vui lòng tự tìm trên Internet. Tôi xin giới thiệu cách ánh xạ các View trong Android và hai cách gán sự kiện thường được sử dụng là:Anonymous Event vàVariables Event Listerner. Ánh xạ các view của Android.Trong Android muốn sử dụng được các View trên file XML đã thiết kế thì chúng ta phải ánh xạ chúng trong file Java của Android, trong ví dụ trên tôi có Button Press có id làbtn_press và Textview có id là tv_hello giờ tôi sẽ ánh xạ nó như sau: package com.tuandc.project1.project1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView tv_Hello; Button btn_press;// Khởi tạo hai biến TextView và Button để chuẩn bị ánh xạ các control @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_Hello = (TextView) findViewById(R.id.tv_hello); // sử dụng findViewById để tìm và ánh xạ control tù File Xml vào biến tv_Hello btn_press = (Button) findViewById(R.id.btn_press); } }Và như bạn thấy tôi sử dụng hai biến có kiểu là TextView và Button để ánh xạ các control trên file XML vào hai biến này trong câu lệnhfindViewById bạn thấy có tham số truyền vào là R.id.tv_hellođây chính là id của TextView trên file XML và khi bạn đặt một id cho một view/control nào trong file XML thì nó sẽ được Android lưu vô hệ thống. OK vậy là xong phần ánh xạ giờ là gán sự kiện. Anonymous EventAnonymous Event nếu dịch ra tiếng việt thì là sự kiện nặc danh và đúng như tên gọi của nó với cách gán sự kiện này ta sẽ không gán trực tiếp vào control/view trong file XML thông qua thuộc tính onClick mà ta sẽ gán sự kiện trong file Java lúc các control/view đã được ánh xạ. Cách gán như sau. package com.tuandc.project1.project1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView tv_Hello; Button btn_press;// Khởi tạo hai biến TextView và Button để chuẩn bị ánh xạ các control @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_Hello = (TextView) findViewById(R.id.tv_hello); // sử dụng findViewById để tìm và ánh xạ control tù File Xml vào biến tv_Hello btn_press = (Button) findViewById(R.id.btn_press); // Gán sự kiện click cho Button btn_press.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { tv_Hello.setText("Xin chào mọi người");// Gán chuôi Xin chào mọi người cho TextView } }); } }Như bạn thấy có một phương thứcsetOnClickListener được gọi tại btn_press và khi ta new Phương thước View.OnClickListener() thì nó sẽ Override lại phương thức onClick và ta sẽ viết code xử lí trong phương thức này. Và trên đây là cách gán sự kiệnAnonymous Event.sau đây tôi xin giới thiệu với các bạn cách gán sự kiệnVariables Event Listerner Variables Event Listerner.Cách gán thứ hai làVariables Event Listerner, cách này ta sẽ dung một biến trung gian để lưu sự kiện của control và cách này ta có thể viết xử lý sự kiện một cách tập trong nhất.. Code: Và đây là kết quả khi chạy của hai cách gán sự kiện trên. Kết quả chạy ví dụ Vật là tôi đã giới thiệu với các bạn cách ánh xạ các control cũng như cách gán sự kiện cho các control này trong Android xin cảm ơn các bạn đã theo dõi hẹn gặp lại các bạn sau. Góc xả stress: bạn thấy đấy lập trình rất kì diệu và đau não đúng không nào vậy để xả stress tôi có 1 câu hỏi sau :v Nếu như có một em robot như thế này: Bạn sẽ lập trình em này như thế nào. vậy bạn sẽ lập trình và gán hành động gì cho em này ?. Đánh giá bài viết Tags gán sự kiệnjavalập trình android Bài liên quan |