您的位置:首页 > 其它

定义小组件的步骤

2016-09-21 17:14 218 查看
1.创建一个组件的类继承:AppwidgetProvider 父类

2.定义小组件的布局文件(在res/layout中)

3.定义小组件的属性描述文件,在res文件家中创建xml文件夹,创建描述文件(xml类型),如:

<?xml version="1.0" encoding="UTF-8"?>

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"

    android:minWidth="120dp"

    android:minHeight="120dp"

    android:updatePeriodMillis="0"

    android:initialLayout="@layout/time_widget"></appwidget-provider>
4.配置清单配置文件:

在  application下:

    <receiver

            android:name="步骤1中创建的类的包含包的类名,如"com.example.wiget.TimeWidget“

            >

            <intent-filter>

                <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>  // 此fiflter必须写

            </intent-filter>

            <meta-data android:name="android.appwidget.provider" 

                android:resource="@xml/步骤3中创建的xml文件"/>

        </receiver>

5.在步骤1中创建的类中添加相关方法,如:

    //该方法被调用的时机有两种,1是在appwidget——privider文件中描述的更新时间间隔到来时会回调该方法。2当用户在桌面上添加同种类型的小组件的时候会回调该方法。

    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

        super.onUpdate(context, appWidgetManager, appWidgetIds);

        long time=System.currentTimeMillis();

        SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        String current=sd.format(new Date(time));

        

        RemoteViews ro=new RemoteViews(context.getPackageName(), R.layout.time_widget);

        ro.setTextViewText(R.id.action_settings, current);

        appWidgetManager.updateAppWidget( appWidgetIds,ro);

    }

    @Override

    

    //改方法只要同种类型的小组件每次被删除时都会回调

    public void onDeleted(Context context, int[] appWidgetIds) {

        // TODO Auto-generated method stub

        super.onDeleted(context, appWidgetIds);

    }

    

    

    @Override

    

    //同种类型的小组件只有第一个被创建时会被回调。

    public void onEnabled(Context context) {

        // TODO Auto-generated method stub

        super.onEnabled(context);

    }

    

    @Override

    

    //同种类型的小组件只有最后一个被删除时会被回调。

    public void onDisabled(Context context) {

        

        super.onDisabled(context);

    }

    @Override

    public void onReceive(Context context, Intent intent) {

        // TODO Auto-generated method stub

        super.onReceive(context, intent);

    }

   

6.在虚拟机上的小部件中找到自己创建的小组件拖动到桌面

完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: