1、AppWidget的使用初步
先贴个地址,这个地址里面写的其实很详细。http://www.cnblogs.com/qianlifeng/archive/2011/03/26/1996407.html
··这里还是再大概总结一下AppWidget的使用流程。
1)新建一个布局文件,里面实际上呈现了AppWidget的布局。
2)在res文件夹下新建一个xml文件夹并新建一个xml文件,创建时在resource type里选择appwidget provider。这个为AppWidget提供了元数据,实际上感觉是对这个Appwidget一个总体的描述文件。
3)写一个继承AppWidgetProvider的类,并在里面复写一些函数。
4)在AndroidManifest中进行各种声明(实际上Appwidget是一个Reciver)
至此,实际上一个AppWidget就已经可以显示在桌面上了,但是,要想对该插件上的空间进行监听还需要进一步 的操作,由于Appwidget是和主程序运行在不同的进程中的,所以想要对Appwidget中的空间进行监听,实际上涉及 进程间的数据交流,这个我目前也不懂--#,不过,Android为我们提供了一些方法方便我们对事件进行监听。
5)先设置一个Intent;再用PendingIntent将该Intent包装起来。
6)用RemoteViews类的对象获取AppWidget上的所有控件。
7)用RemoteViews对象中的set...函数将PendingIntent和布局中某控件连接起来。
8)更新AppWidget。
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
for (int i = 0; i < appWidgetIds.length; i++) {
Intent intent = new Intent(context, a2info_detailInfoActivity.class); //5)
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); //5)
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.info_appwidget_layout); //6)
remoteViews.setOnClickPendingIntent(R.id.layoutinfo1, pendingIntent); //7)
appWidgetManager.updateAppWidget(appWidgetIds[i], remoteViews); //8)
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
··用AppW需要注意的地方
1)appwidget—provider中minWidth和minHeight的计算方法:格子数*74-2 单位:dp;
2)AppWidget目前支持的控件类型:
FrameLayout、LinearLayout、RelativeLayout、AnalogClock、Button、Chronometer、ImageButton、ImageView、ProgressBar、TextView
3)使用RemoteViews获取AppWidget中控件是不要写错了,另外布局文件中也要当心不要写错。
2、Android文本输入输出时的中文编码问题
··Android程序如果想让一个电脑上的txt文件输入进sd卡中,及进行复制,注意要将txt保存时编码选择UTF-8类型的,若只是将汉字字符串输出到sd卡上的文件中,直接用字节流FileOutputStream写入到文件中即可,此时编码是正确的。
··!——————!再次强调不要忘了加SD卡读写权限--#