Thứ Bảy, 5 tháng 1, 2019

Học lập trình Android - Android - Xử lý sự kiện

Sự kiện là một cách hữu ích để thu thập dữ liệu về tương tác của người dùng với các thành phần tương tác của Ứng dụng.

Giống như nhấn nút hoặc chạm vào màn hình, v.v. Khung Khóa học lập trình Android duy trì hàng đợi sự kiện làm cơ sở nhập trước, xuất trước (FIFO). Bạn có thể nắm bắt những sự kiện này trong chương trình của mình và thực hiện hành động phù hợp theo yêu cầu.

Có ba khái niệm sau liên quan đến Quản lý sự kiện Android


Trình lắng nghe sự kiện - Trình lắng nghe sự kiện là một giao diện trong lớp View có chứa một phương thức gọi lại duy nhất. 

Khóa học lập trình Android
Khóa học lập trình Android

Các phương thức này sẽ được gọi bởi khung Khóa học lập trình Android khi Chế độ xem mà người nghe đã đăng ký được kích hoạt bởi sự tương tác của người dùng với mục trong Giao diện người dùng.

Đăng ký Trình lắng nghe Sự kiện - Đăng ký Sự kiện là quá trình Người xử lý Sự kiện được đăng ký với Trình lắng nghe Sự kiện để Trình xử lý được gọi khi Trình lắng nghe Sự kiện kích hoạt sự kiện.

Trình xử lý sự kiện - Khi một sự kiện xảy ra và chúng tôi đã đăng ký một người nghe sự kiện cho sự kiện đó, người nghe sự kiện gọi Trình xử lý sự kiện, đây là phương thức thực sự xử lý sự kiện.

Người nghe sự kiện & Người xử lý sự kiện.

Xử lý sự kiệnTrình nghe & mô tả sự kiện
trong một cái nhấp chuột()OnClickListener ()

Điều này được gọi khi người dùng nhấp hoặc chạm hoặc tập trung vào bất kỳ tiện ích nào như nút, văn bản, hình ảnh, v.v. Bạn sẽ sử dụng trình xử lý sự kiện onClick () để xử lý sự kiện đó.
onLongClick ()OnLongClickListener ()

Điều này được gọi khi người dùng nhấp hoặc chạm hoặc tập trung vào bất kỳ tiện ích nào như nút, văn bản, hình ảnh, vv trong một hoặc nhiều giây. Bạn sẽ sử dụng trình xử lý sự kiện onLongClick () để xử lý sự kiện đó.
onF FocusChange ()OnF FocusChangeListener ()

Điều này được gọi khi widget mất đi trọng tâm của nó tức là. người dùng đi xa khỏi mục xem. Bạn sẽ sử dụng trình xử lý sự kiện onF FocusChange () để xử lý sự kiện đó.
onKey ()OnF FocusChangeListener ()

Điều này được gọi khi người dùng tập trung vào mục đó và nhấn hoặc nhả một phím cứng trên thiết bị. Bạn sẽ sử dụng trình xử lý sự kiện onKey () để xử lý sự kiện đó.
onTouch ()OnTouchListener ()
Điều này được gọi khi người dùng nhấn phím, nhả phím hoặc bất kỳ cử chỉ chuyển động nào trên màn hình. Bạn sẽ sử dụng trình xử lý sự kiện onTouch () để xử lý sự kiện đó.
onMothyItemClick ()OnMothyItemClickListener ()
Điều này được gọi khi người dùng chọn một mục menu. Bạn sẽ sử dụng trình xử lý sự kiện onMothyItemClick () để xử lý sự kiện đó.
onCreateContextMothy ()onCreateContextMothyItemListener ()
Điều này được gọi khi menu ngữ cảnh đang được xây dựng (là kết quả của một "nhấp chuột dài")
Có rất nhiều trình lắng nghe sự kiện có sẵn như là một phần của lớp View như OnHoverListener, OnDragListener, v.v. có thể cần thiết cho ứng dụng của bạn. Vì vậy, tôi khuyên bạn nên tham khảo tài liệu chính thức để phát triển ứng dụng Khóa học lập trình Android trong trường hợp bạn sẽ phát triển một ứng dụng tinh vi.

Đăng ký người nghe sự kiện


Đăng ký sự kiện là quá trình Trình xử lý sự kiện được đăng ký với Trình lắng nghe sự kiện để trình xử lý được gọi khi Trình lắng nghe sự kiện kích hoạt sự kiện. 

Mặc dù có một số cách khó khăn để đăng ký người nghe sự kiện của bạn cho bất kỳ sự kiện nào, nhưng tôi sẽ chỉ liệt kê ra 3 cách hàng đầu, trong đó bạn có thể sử dụng bất kỳ cách nào trong số đó dựa trên tình huống.

Sử dụng một lớp bên trong vô danh

Lớp hoạt động thực hiện giao diện Listener.

Sử dụng tệp Bố cục Activity_main.xml để chỉ định trình xử lý sự kiện trực tiếp.

Phần bên dưới sẽ cung cấp cho bạn các ví dụ chi tiết về cả ba kịch bản

Chế độ cảm ứng


Người dùng có thể tương tác với thiết bị của mình bằng cách sử dụng các phím hoặc nút cứng hoặc chạm vào màn hình. Chạm vào màn hình sẽ đặt thiết bị vào chế độ cảm ứng. 

Sau đó, người dùng có thể tương tác với nó bằng cách chạm vào các nút, hình ảnh ảo trên màn hình, v.v. Bạn có thể kiểm tra xem thiết bị có ở chế độ cảm ứng hay không bằng cách gọi phương thức isInTouchMode () của lớp View.

Tiêu điểm

Một khung nhìn hoặc widget thường được tô sáng hoặc hiển thị một con trỏ nhấp nháy khi nó nằm trong tiêu điểm. Điều này cho thấy rằng nó đã sẵn sàng để chấp nhận đầu vào từ người dùng.

isF Focusable () - nó trả về đúng hoặc sai

isF FocusableInTouchMode () - kiểm tra xem chế độ xem có thể lấy nét ở chế độ cảm ứng hay không. (Một khung nhìn có thể lấy nét được khi sử dụng phím cứng nhưng không phải khi thiết bị ở chế độ cảm ứng)
android:foucsUp="@=id/button_l"

onTouchEvent ()

public boolean onTouchEvent(motionEvent event){
   switch(event.getAction()){
      case TOUCH_DOWN:
      Toast.makeText(this,"you have clicked down Touch button",Toast.LENTH_LONG).show();
      break();
   
      case TOUCH_UP:
      Toast.makeText(this,"you have clicked up touch button",Toast.LENTH_LONG).show();
      break;
   
      case TOUCH_MOVE:
      Toast.makeText(this,"you have clicked move touch button"Toast.LENTH_LONG).show();
      break;
   }
   return super.onTouchEvent(event) ;
}

Ví dụ xử lý sự kiện

Đăng ký người nghe sự kiện bằng cách sử dụng một lớp bên trong ẩn danh

Ở đây bạn sẽ tạo ra một triển khai ẩn danh của người nghe và sẽ hữu ích nếu mỗi lớp chỉ được áp dụng cho một điều khiển duy nhất và bạn có lợi thế để chuyển các đối số cho trình xử lý sự kiện. Trong phương pháp này, các phương thức xử lý sự kiện có thể truy cập dữ liệu riêng tư của Activity. Không có tài liệu tham khảo là cần thiết để gọi đến Hoạt động.

Nhưng nếu bạn áp dụng trình xử lý cho nhiều hơn một điều khiển, bạn sẽ phải cắt và dán mã cho trình xử lý và nếu mã cho trình xử lý dài, điều đó làm cho mã khó bảo trì hơn.

Sau đây là các bước đơn giản để hiển thị cách chúng tôi sẽ sử dụng lớp Listener riêng biệt để đăng ký và nắm bắt sự kiện nhấp chuột. Cách tương tự bạn có thể thực hiện trình nghe của mình cho bất kỳ loại sự kiện cần thiết nào khác.

Bậc thangSự miêu tả
1Bạn sẽ sử dụng Android studio IDE để tạo ra một ứng dụng Android và đặt tên cho nó như myapplication dưới một góicom.example.myapplication như được giải thích trong Hello World Ví dụchương.
2Sửa đổi tệp src / MainActivity.java để thêm trình lắng nghe và xử lý sự kiện nhấp cho hai nút được xác định.
3Sửa đổi nội dung bẻ khóa của tệp res / layout / Activity_main.xml để bao gồm các điều khiển UI của Android.
4Không cần phải khai báo các hằng chuỗi mặc định.Android studio chăm sóc các hằng mặc định.
5Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của những thay đổi được thực hiện trong ứng dụng.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi src / com.example.myapplication / MainActivity.java . Tập tin này có thể bao gồm từng phương pháp vòng đời cơ bản.

Sau đây sẽ là nội dung của tệp res / layout / Activity_main.xml

Ở đây abc chỉ ra về logo hướng dẫn


Sau đây sẽ là nội dung của res / value / chuỗi.xml để xác định hai hằng số mới
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">myapplication</string>
</resources>
Sau đây là nội dung mặc định của AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.myapplication" >
      
   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.myapplication.MainActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>
Hãy thử chạy ứng dụng myapplication của bạn . Tôi giả sử bạn đã tạo AVDcủa mình trong khi thực hiện thiết lập môi trường.

Để chạy ứng dụng từ Khóa học lập trình Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.

Android Studio cài đặt ứng dụng trên AVD của bạn và khởi động nó và nếu mọi thứ đều ổn với thiết lập và ứng dụng của bạn, nó sẽ hiển thị theo cửa sổ Trình mô phỏng

Bây giờ bạn thử nhấp vào hai nút, từng nút một và bạn sẽ thấy phông chữ của văn bản Hello World sẽ thay đổi, điều này xảy ra do phương thức xử lý sự kiện nhấp đã đăng ký đang được gọi đối với mỗi sự kiện nhấp.

Tập thể dục


Tôi sẽ khuyên bạn nên thử viết các trình xử lý sự kiện khác nhau cho các loại sự kiện khác nhau và hiểu chính xác sự khác biệt trong các loại sự kiện khác nhau và cách xử lý của chúng.

Các sự kiện liên quan đến menu, spinner, công cụ chọn là ít khác nhau nhưng chúng cũng dựa trên các khái niệm tương tự như được giải thích ở trên.

Không có nhận xét nào:

Đăng nhận xét

Lập trình Android - RenderScript

Trong chương này, chúng ta sẽ tìm hiểu về Android RenderScript. Thông thường các ứng dụng trên Android được thiết kế để tiêu thụ tài nguyên ...