📜  Android-小部件

📅  最后修改于: 2021-01-05 05:41:09             🧑  作者: Mango


小部件是放置在主屏幕上的android应用程序的小工具或控件。小部件可以非常方便,因为它们允许您将喜欢的应用程序放在主屏幕上以便快速访问它们。您可能已经看过一些常见的小部件,例如音乐小部件,天气小部件,时钟小部件等

小部件可以是多种类型,例如信息小部件,集合小部件,控制小部件和混合小部件。 Android为我们提供了开发自己的小部件的完整框架。

小部件-XML文件

为了创建应用程序小部件,首先需要的是AppWidgetProviderInfo对象,您将在单独的小部件XML文件中定义该对象。为此,请右键单击您的项目并创建一个名为xml的新文件夹。现在,右键单击新创建的文件夹并创建一个新的XML文件。 XML文件的资源类型应设置为AppWidgetProvider 。在xml文件中,定义一些属性,如下所示-



小部件-布局文件

现在,您必须在默认XML文件中定义窗口小部件的布局。您可以拖动组件以生成自动xml。

小部件-Java文件

定义布局后,现在创建一个新的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运行该应用,请打开您项目的活动文件之一,然后点击运行Eclipse运行图标工具栏中的图标。在启动应用程序之前,Android Studio将显示以下窗口,以选择要在其中运行Android应用程序的选项。

Anroid小部件教程

选择您的移动设备作为选项,然后检查将显示默认屏幕的移动设备-

Anroid小部件教程

转到小部件部分,然后将创建的小部件添加到桌面或主屏幕。看起来像这样-

Anroid小部件教程

现在,只需点击出现的小部件按钮,即可启动浏览器。但在此之前,请确保您已连接到互联网。按下按钮后,将出现以下屏幕-

Anroid小部件教程

注意。通过仅更改java文件中的url,您的小部件将在浏览器中打开所需的网站。