Widget Android Là Gì

1. Widget trong android là gì?

Widget vào android là 1 trong tiện ích nhỏ tuổi thường được để lên trên home screen. Nó rất tiện dụng bởi nó cho phép người dùng đặt những ứng dụng yêu thích của mình lên home screen và truy vấn sử dụng bọn chúng một cách nhanh chóng. Trong device của mình chúng ta cũng có thể tìm được những widget sống thọ sẵn như widget về music, thời tiết, đồng hồ, báo thức,....Mặc dù tiện lợi nhưng nó cũng đều có những khuyết điểm của nó. Bởi nó cũng là một trong những ứng dụng nên nó sẽ tốn Ram. Càng nhiều widget trên home screen bạn sẽ càng gồm ít dung tích Ram áp dụng đi. Có khá nhiều widget còn sử dụng kết nối tới vps riêng hoặc facebook, yahoo, ... Vậy bắt buộc sẽ tốn giữ lượng sử dụng của bạn. Bởi vì vậy mà những khi các bạn sẽ thắc mắc sao chả dùng chiếc quái gì mà lại lưu lượng cũng bị hao nghĩa là sao?

Vậy nên mỗi khi sử dụng widget chúng ta nên quan tâm đến về tính cần thiết và tiện dụng của nó trước khi sử dụng.

Bạn đang xem: Widget android là gì

2. Làm sao để tạo ra một ứng dụng widget

Để tạo nên ứng dụng widget thì mẫu trước tiên chúng ta cần là một đối tượng AppWidgetProviderInfo chỗ mà bạn sẽ định nghĩa một tệp tin xml widget riêng rẽ biệt. Vậy ta sẽ tạo một thư mục là xml trong thư mục res. Tạo nên một file xml new trong folder xml vừa sinh sản và mix type của xml cho tới AppWidgetProviderInfor như sau:

appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="250dp" android:updatePeriodMillis="0" android:minHeight="250dp" android:initialLayout="
layout/activity_main">appwidget-provider>Sau đó các bạn hãy tạo những layout đến widget của công ty tới activity_main.xml

Với những class java:Sau khi đã design những layout cho widget, chế tác một class .java và extend AppWidgetProvider.Trong
Override update method cần xác định rõ 2 class PendingIntent cùng RemoteViews:

PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);Cuối cùng nên gọi method updateAppWidget() của class AppWidgetManager.

appWidgetManager.updateAppWidget(currentWidgetId,views);Dưới đây là một số các method khác đang được khái niệm trong class này:

onDeleted(Context context, int<> appWidgetIds): hotline khi instance của AppWidgetProvider được delete.

onDisabled(Context context): call khi instance ở đầu cuối của AppWidgetProvider được delete.

onEnabled(Context context): Gọi lúc một instance của AppwidgetProvider được tạo.

Xem thêm: Tại Sao Ipad Không Vào Được Wifi Và Phương Án Khắc Phục, Mẹo Khắc Phục Lỗi Kết Nối Wifi Trên Ipad

onReceive(Context context, Intent intent): Nó được thực hiện để gửi những cuộc hotline đến các cách thức khác nhau của lớp.

Về file AndroidManifest.xml ta gồm ví dụ:

receiver android:name="ExampleAppWidgetProvider" > intent-filter> kích hoạt android:name="android.appwidget.action.APPWIDGET_UPDATE" /> intent-filter> meta-data android:name="android.appwidget.provider" android:resource="
xml/example_appwidget_info" />receiver>3. Ví dụVí dụ dưới đây mục đích giúp hiểu hơn về cách tạo, sử dụng một widget vào android.Ứng dụng này sẽ triển khai hiển thị một button, nếu người dùng click vào button kia thì đang mở trình ưng chuẩn tới url: https://kinhdientamquoc.vn/

Tạo một project apk với android studio:

*
Tại file MainActivity.java:

package com.framgia.widgetandroidreport; 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
Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int<> appWidgetIds) super.onUpdate(context, appWidgetManager, appWidgetIds); for (int i = 0; i appWidgetIds.length; i++) int currentWidgetId = appWidgetIds; String url = "https://kinhdientamquoc.vn/"; 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(); Sửa tệp tin activity_main.xml như sau:

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" tools:context=".MainActivity"> Button android:id="
+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="Submit"/>RelativeLayout>Sửa tiếp tệp tin res/xml/widget.xml.

appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialLayout="
layout/activity_main" android:minHeight="150dp" android:minWidth="150dp" android:updatePeriodMillis="0">appwidget-provider>Cuối thuộc là file AndroidManifest.xml:

manifest package="com.framgia.widgetandroidreport" xmlns:android="http://schemas.android.com/apk/res/android"> application android:allowBackup="true" android:icon="
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/widget">meta-data> receiver> application> manifest>Sau khi hiểu về kiểu cách dùng widget, nếu có thời gian bạn có thể tạo một widget về thời tiết, facebook, tin tức, báo thức ...và không ít các widget bổ ích khác.

Dưới đấy là link download project cùng file apk:https://drive.google.com/file/d/0B7td9WR1ZtQ0bHZKYTdzVmg0QU0/view?usp=sharing

Chú ý là sau khi setup app bạn phải vào phần quản lý widget của máy và có thể chấp nhận được nó ra màn hình home screen nhé.