Một widget là một tiện ích nhỏ hoặc điều khiển ứng dụng lập trình Android của bạn được đặt trên màn hình chính. Các widget có thể rất tiện dụng vì chúng cho phép bạn đặt các ứng dụng yêu thích của mình lên màn hình chính để nhanh chóng truy cập chúng.
Bạn có thể đã thấy một số tiện ích phổ biến, chẳng hạn như tiện ích âm nhạc, tiện ích thời tiết, tiện ích đồng hồ, v.v.
Các widget có thể có nhiều loại như widget thông tin, widget bộ sưu tập, widget điều khiển và widget lai. Android cung cấp cho chúng tôi một khung hoàn chỉnh để phát triển các widget của riêng chúng tôi.
Bây giờ, nhấp chuột phải vào thư mục vừa tạo và tạo một tệp XML mới. Loại tài nguyên của tệp XML phải được đặt thành AppWidgetProvider . Trong tệp xml, xác định một số thuộc tính như sau
Widget - tập tin Java
Sau khi xác định bố cục, bây giờ hãy tạo tệp JAVA mới hoặc sử dụng tệp hiện có và mở rộng tệp đó bằng lớp AppWidgetProvider và ghi đè phương thức cập nhật của nó như sau.
Trong phương thức cập nhật, bạn phải định nghĩa đối tượng của hai lớp là PendingIntent và RemoteViews. Cú pháp của nó là
Một phần từ phương thức updateAppWidget, có các phương thức khác được định nghĩa trong lớp này để thao tác các widget. Họ là như sau
Dưới đây là một ví dụ minh họa việc sử dụng Widget ứng dụng. Nó tạo ra một ứng dụng widget cơ bản sẽ mở trang web hiện tại này trong trình duyệt.
Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế có internet đang chạy.
Sau đây là nội dung của MainActivity.java đã sửa đổi .
Để chạy ứng dụng từ studio Android, 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ụ.
Trước khi bắt đầu ứng dụng của bạn, studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.
Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình mặc định của bạn
Chuyển đến phần tiện ích của bạn và thêm tiện ích đã tạo vào màn hình chính hoặc màn hình chính. Nó sẽ trông giống như thế này
Bây giờ chỉ cần nhấn vào nút widget xuất hiện, để khởi chạy trình duyệt. Nhưng trước đó hãy chắc chắn rằng bạn đã kết nối với internet. Sau khi nhấn nút, màn hình sau sẽ xuất hiện
Chú thích. Chỉ cần thay đổi url trong tệp java, tiện ích của bạn sẽ mở trang web mong muốn của bạn trong trình duyệt.
Bạn có thể đã thấy một số tiện ích phổ biến, chẳng hạn như tiện ích âm nhạc, tiện ích thời tiết, tiện ích đồng hồ, v.v.
Các widget có thể có nhiều loại như widget thông tin, widget bộ sưu tập, widget điều khiển và widget lai. Android cung cấp cho chúng tôi một khung hoàn chỉnh để phát triển các widget của riêng chúng tôi.
![]() |
| Học lập trình Android |
Tiện ích - Tệp XML
Để tạo một widget ứng dụng, điều đầu tiên bạn cần là đối tượng AppWidgetProviderInfo, mà bạn sẽ định nghĩa trong một tệp XML widget riêng biệt. Để làm điều đó, nhấp chuột phải vào dự án của bạn và tạo một thư mục mới gọi là xml .Bây giờ, nhấp chuột phải vào thư mục vừa tạo và tạo một tệp XML mới. Loại tài nguyên của tệp XML phải được đặt thành AppWidgetProvider . Trong tệp xml, xác định một số thuộc tính như sau
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dp" android:updatePeriodMillis="0" android:minHeight="146dp" android:initialLayout="@layout/activity_main"> </appwidget-provider>
Widget - Bố cục tập tin
Khóa học lập trình Android bây giờ bạn phải xác định bố cục của widget trong tệp XML mặc định của mình. Bạn có thể kéo các thành phần để tạo xml tự động.Widget - tập tin Java
Sau khi xác định bố cục, bây giờ hãy tạo tệp JAVA mới hoặc sử dụng tệp hiện có và mở rộng tệp đó bằng lớp AppWidgetProvider và ghi đè phương thức cập nhật của nó như sau.
Trong phương thức cập nhật, bạn phải định nghĩa đối tượng của hai lớp là PendingIntent và RemoteViews. Cú pháp của nó là
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);Cuối cùng, bạn phải gọi một phương thức cập nhật updateAppWidget () của lớp AppWidgetManager. Cú pháp của nó là
appWidgetManager.updateAppWidget(currentWidgetId,views);
Một phần từ phương thức updateAppWidget, có các phương thức khác được định nghĩa trong lớp này để thao tác các widget. Họ là như sau
| Không. | Phương pháp & Mô tả |
|---|---|
| 1 | onDelatted (Ngữ cảnh, int [] appWidgetIds) Điều này được gọi khi một phiên bản của AppWidgetProvider bị xóa. |
| 2 | bật tắt (bối cảnh bối cảnh) Điều này được gọi khi phiên bản cuối cùng của AppWidgetProvider bị xóa |
| 3 | onEnables (Bối cảnh bối cảnh) Điều này được gọi khi một phiên bản của AppWidgetProvider được tạo. |
| 4 | onReceive (Bối cảnh, ý định) Nó được sử dụng để gửi các cuộc gọi đến các phương thức khác nhau của lớp |
Widget - Tệp kê khai
Bạn cũng phải khai báo lớp AppWidgetProvider trong tệp kê khai của mình như sau:<receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver>Thí dụ
Dưới đây là một ví dụ minh họa việc sử dụng Widget ứng dụng. Nó tạo ra một ứng dụng widget cơ bản sẽ mở trang web hiện tại này trong trình duyệt.
Để thử nghiệm với ví dụ này, bạn cần chạy nó trên một thiết bị thực tế có internet đang chạy.
| Các bước | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng studio Android để tạo một ứng dụng Android theo gói com.example.sairamkrishna.myapplication. |
| 2 | Sửa đổi tệp src / MainActivity.java để thêm mã widget. |
| 3 | Sửa đổi res / layout / Activity_main để thêm các thành phần XML tương ứng |
| 4 | Tạo một thư mục mới và tệp xml trong res / xml / mywidget.xml để thêm các thành phần XML tương ứng |
| 5 | Sửa đổi AndroidManifest.xml để thêm các quyền cần thiết |
| 6 | Chạy ứng dụng và chọn một thiết bị Android đang chạy và cài đặt ứng dụng trên đó và xác minh kết quả. |
package com.example.sairamkrishna.myapplication; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.widget.RemoteViews; import android.widget.Toast; public class MainActivity extends AppWidgetProvider{ public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) { for(int i=0; i<appWidgetIds.length; i++){ int currentWidgetId = appWidgetIds[i]; String url = "http://www.tutorialspoint.com"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse(url)); PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main); views.setOnClickPendingIntent(R.id.button, pending); appWidgetManager.updateAppWidget(currentWidgetId,views); Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show(); } } }Sau đây là nội dung được sửa đổi của xml res / layout / Activity_main.xml.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:transitionGroup="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView" android:layout_centerHorizontal="true" android:textColor="#ff3412ff" android:textSize="35dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Widget" android:id="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="61dp" android:layout_below="@+id/textView" /> </RelativeLayout>Sau đây là nội dung của res / xml / mywidget.xml .
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dp" android:updatePeriodMillis="0" android:minHeight="146dp" android:initialLayout="@layout/activity_main"> </appwidget-provider>Sau đây là nội dung của res / value / string.xml .
<resources> <string name="app_name">My Application</string> </resources>Sau đây là nội dung của tệp AndroidManifest.xml .
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sairamkrishna.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name=".MainActivity"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/mywidget"></meta-data> </receiver> </application> </manifest>Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Android Mobile thực tế của mình với máy tính.
Để chạy ứng dụng từ studio Android, 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ụ.
Trước khi bắt đầu ứng dụng của bạn, studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.
Chọn thiết bị di động của bạn làm tùy chọn và sau đó kiểm tra thiết bị di động của bạn sẽ hiển thị màn hình mặc định của bạn
Chuyển đến phần tiện ích của bạn và thêm tiện ích đã tạo vào màn hình chính hoặc màn hình chính. Nó sẽ trông giống như thế này
Bây giờ chỉ cần nhấn vào nút widget xuất hiện, để khởi chạy trình duyệt. Nhưng trước đó hãy chắc chắn rằng bạn đã kết nối với internet. Sau khi nhấn nút, màn hình sau sẽ xuất hiện
Chú thích. Chỉ cần thay đổi url trong tệp java, tiện ích của bạn sẽ mở trang web mong muốn của bạn trong trình duyệt.

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