📅  最后修改于: 2021-01-05 05:41:09             🧑  作者: Mango
小部件是放置在主屏幕上的android应用程序的小工具或控件。小部件可以非常方便,因为它们允许您将喜欢的应用程序放在主屏幕上以便快速访问它们。您可能已经看过一些常见的小部件,例如音乐小部件,天气小部件,时钟小部件等
小部件可以是多种类型,例如信息小部件,集合小部件,控制小部件和混合小部件。 Android为我们提供了开发自己的小部件的完整框架。
为了创建应用程序小部件,首先需要的是AppWidgetProviderInfo对象,您将在单独的小部件XML文件中定义该对象。为此,请右键单击您的项目并创建一个名为xml的新文件夹。现在,右键单击新创建的文件夹并创建一个新的XML文件。 XML文件的资源类型应设置为AppWidgetProvider 。在xml文件中,定义一些属性,如下所示-
现在,您必须在默认XML文件中定义窗口小部件的布局。您可以拖动组件以生成自动xml。
定义布局后,现在创建一个新的JAVA文件或使用现有的JAVA文件,并使用AppWidgetProvider类对其进行扩展,并覆盖其更新方法,如下所示。
在update方法中,必须定义两个类的对象,即PendingIntent和RemoteViews。它的语法是-
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);
最后,您必须调用AppWidgetManager类的更新方法updateAppWidget()。它的语法是-
appWidgetManager.updateAppWidget(currentWidgetId,views);
作为updateAppWidget方法的一部分,此类中定义了其他方法来操纵小部件。它们如下-
Sr.No | Method & Description |
---|---|
1 |
onDeleted(Context context, int[] appWidgetIds) This is called when an instance of AppWidgetProvider is deleted. |
2 |
onDisabled(Context context) This is called when the last instance of AppWidgetProvider is deleted |
3 |
onEnabled(Context context) This is called when an instance of AppWidgetProvider is created. |
4 |
onReceive(Context context, Intent intent) It is used to dispatch calls to the various methods of the class |
您还必须在清单文件中声明AppWidgetProvider类,如下所示:
这是一个演示应用程序小部件用法的示例。它创建了一个基本的窗口小部件应用程序,将在浏览器中打开此当前网站。
要试验此示例,您需要在运行Internet的实际设备上运行此示例。
Steps | Description |
---|---|
1 | You will use Android studio to create an Android application under a package com.example.sairamkrishna.myapplication. |
2 | Modify src/MainActivity.java file to add widget code. |
3 | Modify the res/layout/activity_main to add respective XML components |
4 | Create a new folder and xml file under res/xml/mywidget.xml to add respective XML components |
5 | Modify the AndroidManifest.xml to add the necessary permissions |
6 | Run the application and choose a running android device and install the application on it and verify the results. |
以下是修改后的MainActivity.java的内容。
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
以下是xml res / layout / activity_main.xml的修改内容。
以下是res / xml / mywidget.xml的内容。
以下是res / values /字符串.xml的内容。
My Application
以下是AndroidManifest.xml文件的内容。
让我们尝试运行您的应用程序。我假设您已将实际的Android Mobile设备与计算机连接。要从Android Studio运行该应用,请打开您项目的活动文件之一,然后点击运行工具栏中的图标。在启动应用程序之前,Android Studio将显示以下窗口,以选择要在其中运行Android应用程序的选项。
选择您的移动设备作为选项,然后检查将显示默认屏幕的移动设备-
转到小部件部分,然后将创建的小部件添加到桌面或主屏幕。看起来像这样-
现在,只需点击出现的小部件按钮,即可启动浏览器。但在此之前,请确保您已连接到互联网。按下按钮后,将出现以下屏幕-
注意。通过仅更改java文件中的url,您的小部件将在浏览器中打开所需的网站。