定义小组件的步骤
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.在虚拟机上的小部件中找到自己创建的小组件拖动到桌面
完成。
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.在虚拟机上的小部件中找到自己创建的小组件拖动到桌面
完成。
相关文章推荐
- 自动行政审批流程组件的审批流程节点定义【民间称为工作流组件、官方称为审批流程组件】
- 通过AS文件来自定义flex中的组件。
- React组件自定义属性的定义及使用
- 用jQuery做更好的组件 通用组件定义模式
- Spark组件和术语定义
- 使用Matrix控制图像或组件变换的步骤
- Android自己定义组件系列【8】——面膜文字动画
- 【原】Maven解决jar冲突调试步骤:第三方组件引用不符合要求的javassit导致的相关异常
- 设计技巧15:模板方法 Template Method 在一个方法中定义一个算法的骨架,而将一些步骤延迟的子类中,实现Ioc
- Flex自定义组件 之 使用AS3定义
- React 中的 定义组件的 两种方式
- 自动行政审批流程组件的审批流程节点定义【民间称为工作流组件、官方称为审批流程组件】
- Android自己定义组件系列【5】——进阶实践(2)
- [EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
- Vue中组件的定义和注册
- extjs_09_定义自己的页面组件
- 在eclipse中设计BPMN 2.0工作流定义的根本步骤
- AS方式重写Flex组件常规步骤
- 【Spring】2 Spring IoC容器中定义组件依赖的方式
- vue定义组件