Android 编程基础 Android 开发教程 & 笔记 1

Similar documents
res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

Chapter 16 Widget 作者 : 林致孙 不少 Android 手機在使用者剛購買時, 手機的桌面上就已經有不少的小工具 (Widget), 有些可以即時顯示氣候資訊, 有些則可以顯示最新股票資訊 本章將 利用兩個例子來說明 Widget 是如何設計的 16.1 時辰顯示小工具 在 An

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

Android Service

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

Dynamic Layout in Android

新・解きながら学ぶJava

Microsoft Word - Chap04.doc

Android Fragment

RecyclerView and CardVew

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

Android + NFC

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

预览图 : (2) 在 SelectCity.java 中增加控件, 用于绑定 select_city 文件的 ListView, TextView,EditTest 等控件 代码和注释如下 :

01_Service

建模与图形思考

Microsoft Word - 01.DOC

untitled

Android Android Android SDK iv

ShareText

Java

第 6 章 BroadcastReceiver( 广播接收者 ) 学习目标 掌握广播接收者的创建, 以及如何自定义广播 ; 掌握有序广播和无序广播的使用, 能够对有序广播进行拦截 在 Android 系统中, 广播是一种运用在应用程序之间传递消息的机制, 例如电池电量低时会发送一条提示广播 要过滤并

實作SQLiteOpenHelper類別

Microsoft Word - FPKLSC_21.docx

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

「西醫基層總額支付委員會《第28次委員會議紀錄

書面

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

图 6-1 主界面 MainActivity 界面对应的布局文件 (activity_main.xml) 如下所示 : <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

untitled

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

Microsoft Word - AEL Part08

0511-Android程式之GPS應用_專題週記4

建立Android新專案

建立Android新專案

Android线程和进程

Microsoft Word - weather12 刷新按钮动画+搜索框+bug处理.docx

EJB-Programming-4-cn.doc

<ADB6ADB1C25EA8FAA6DB2D4D56432E706466>

Microsoft Word - 第3章.doc

DU Ad Platform_SDK 安卓接入指南 DU Ad Platform_SDK for Android 接入手册 ( 触发式广告 ) DUAd_SDK_Trigger v1.0 百度在线网络技术 ( 北京 ) 有限公司 百度在线网络技术 ( 北京 ) 有限公司 - 1 -

Microsoft PowerPoint - ch6 [相容模式]

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

The Embedded computing platform

Microsoft Word 杨超-spinner实现省市县的三级联动.docx

1.5招募说明书(草案)

Android 开发教程

Android 开发教程

浙江师范大学2014年度毕业生就业质量报告

目 录 监 管 资 讯 2016 年 全 国 保 险 监 管 工 作 会 议 召 开...3 协 会 动 态 赤 峰 保 险 行 业 协 会 召 开 数 据 统 计 和 信 息 宣 传 总 结 表 彰 会 议...5 赤 峰 市 保 险 行 业 协 会 秘 书 处 召 开 2015 年 度 述 职

同 时, 采 取 提 供 新 闻 线 索 和 素 材 安 排 专 访 等 方 式 主 动 为 新 闻 媒 体 服 务, 为 采 访 报 道 活 动 创 造 便 利 条 件 建 设 网 络 信 息 发 布 平 台 2013 年 9 月 开 通 中 央 纪 委 监 察 部 网 站,2015 年 1 月

大陸教育部等6個部門公佈「現代職業教育體系建設規劃 ( 年)」規劃到2015年初步形成現代職業教育體系框架,到2020年基本建成「中國」特色現代職業教育體系

時間軸上的竹蓮記憶 學務主任 黃雅彙 我不是竹蓮國小的畢業校友 但對於身為新竹人的我來 說 仔細回想起來 似乎和竹蓮有著一種特別的緣分 對竹蓮國小最初的印象是在小學的時候 猶記得年幼的 我經過一段時日的啦啦隊舞蹈訓練後 老師便帶著我們從學 校步行到竹蓮國小來參加比賽 一踏入竹蓮校門 映入眼簾 的是黑

B1

Microsoft Word - 临政办发6.doc

公務員服務法第13條相關解釋彙整表

资 讯 速 递 台 基 于 大 数 据 的 学 校 督 导 评 估 系 统 建 设 上 海 市 闵 行 区 人 民 政 府 教 育 督 导 室 ( 摘 要 ) 闵 行 教 育 在 深 化 教 育 改 革 探 索 管 办 评 分 离 的 背 景 下, 把 教 育 督 导 评 估 系 统 建 设 作 为

B1

概述

可 Web 编程的NativeUI 设计与实现

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

Chapter 10

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

1. 2. Flex Adobe 3.

untitled

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

无类继承.key

Microsoft Word - ch04三校.doc

投影片 1

幻灯片 1

建模与图形思考

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class


(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

06 01 action JavaScript action jquery jquery AJAX CSS jquery CSS jquery HTML CSS jquery.css() getter setter.css('backgroundcolor') jquery CSS b

题目

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

新版 明解C++入門編

第一章 Android 简介与开发环境搭建

EJB-Programming-3.PDF

ebook 86-15

Database_001

CC213

教案模板4-2

Android Robert C.C. Huang Oscar F.Y. Liu Peter C.L. Hsieh 2011/03/21

FY.DOC

软件工程文档编制

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

任务实施 (1) 创建项目 图 3-1 欢迎界面 首先创建一个工程, 将其命名为 BoXueGu, 指定包名为 com.boxuegu (2) 导入界面图片将欢迎界面所需要的背景图片 launch_bg.png 导入到 drawable 文件夹中, 项目的 icon 图标 app_icon.png

状 态, 规 划 车 辆 行 驶 路 径, 可 进 入 网 站 充 电 服 务 栏 目 (2) 查 询 位 置 联 系 方 式 营 业 时 间 等 信 息, 可 进 入 网 站 服 务 指 南 栏 目 建 议 您 出 行 前 通 过 易 充 电 互 动 网 站 提 前 了 解 所 经 高 速 快 充

Chapter 9: Objects and Classes

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

《大话设计模式》第一章

在Spring中使用Kafka:Producer篇

Transcription:

Android 开发教程 & 笔记 1

多式样 ProgressBar 撰写 : 地狱怒兽 联系 :zyf19870302@126.com 普通圆形 ProgressBar 该类型进度条也就是一个表示运转的过程, 例如发送短信, 连接网络等等, 表示一个过程正 在执行中 一般只要在 XML 布局中定义就可以了 <ProgressBar android:id="@+id/widget43" android:layout_width="wrap_content" android:layout_gravity="center_vertical"> </ProgressBar> 此时, 没有设置它的风格, 那么它就是圆形的, 一直会旋转的进度条 各大小样式圆形 ProgressBar 超大号圆形 ProgressBar 此时, 给设置一个 style 风格属性后, 该 ProgressBar 就有了一个风格, 这里大号 ProgressBar 的风格是 : style="?android:attr/progressbarstylelarge" 2

完整 XML 定义是 : <ProgressBar android:id="@+id/widget196" android:layout_width="wrap_content" style="?android:attr/progressbarstylelarge"> </ProgressBar> 小号圆形 ProgressBar 小号 ProgressBar 对应的风格是 : style="?android:attr/progressbarstylesmall" 完整 XML 定义是 : <ProgressBar android:id="@+id/widget108" android:layout_width="wrap_content" style="?android:attr/progressbarstylesmall"> </ProgressBar> 标题型圆形 ProgressBar 标题型 ProgressBar 对应的风格是 : style="?android:attr/progressbarstylesmalltitle" 完整 XML 定义是 : <ProgressBar android:id="@+id/widget110" android:layout_width="wrap_content" style="?android:attr/progressbarstylesmalltitle"> </ProgressBar> 3

代码中实现 : @Override protected void oncreate(bundle savedinstancestate) { // TODO Auto-generated method stub super.oncreate(savedinstancestate); requestwindowfeature(window.feature_indeterminate_progress); // 请求窗口特色风格, 这里设置成不明确的进度风格 setcontentview(r.layout.second); setprogressbarindeterminatevisibility(true); // 设置标题栏中的不明确的进度条是否可以显示 长形进度条 布局中的长形进度条 1 首先在 XML 进行布局 <ProgressBar android:id="@+id/progressbar_updown" android:layout_width="200dp" style="?android:attr/progressbarstylehorizontal" android:layout_gravity="center_vertical" android:max="100" android:progress="50" android:secondaryprogress="70" > 讲解 : style="?android:attr/progressbarstylehorizontal" 设置风格为长形 android:max="100" 最大进度值为 100 android:progress="50" 初始化的进度值 android:secondaryprogress="70" 初始化的底层第二个进度值 android:layout_gravity="center_vertical" 垂直居中 2 代码中运用 private ProgressBar myprogressbar; // 定义 ProgressBar myprogressbar = (ProgressBar) findviewbyid(r.id.progressbar_updown); 4

//ProgressBar 通过 ID 来从 XML 中获取 myprogressbar.incrementprogressby(5); //ProgressBar 进度值增加 5 myprogressbar.incrementprogressby(-5); //ProgressBar 进度值减少 5 myprogressbar.incrementsecondaryprogressby(5); //ProgressBar 背后的第二个进度条进度值增加 5 myprogressbar.incrementsecondaryprogressby(-5); //ProgressBar 背后的第二个进度条进度值减少 5 页面标题中的长形进度条 代码实现 : 1 先设置一下窗口风格特性 requestwindowfeature(window.feature_progress); // 请求一个窗口进度条特性风格 setcontentview(r.layout.main); setprogressbarvisibility(true); // 设置进度条可视 2 然后设置进度值 setprogress(myprogressbar.getprogress() * 100); // 设置标题栏中前景的一个进度条进度值 setsecondaryprogress(myprogressbar.getsecondaryprogress() * 100); // 设置标题栏中后面的一个进度条进度值 //ProgressBar.getSecondaryProgress() 是用来获取其他进度条的进度值 5

ProgressDialog ProgressDialog 中的圆形进度条 ProgressDialog 一般用来表示一个系统任务或是开启任务时候的进度, 有一种稍等的意思 代码实现 : ProgressDialog mypdialog=new ProgressDialog(this); // 实例化 mypdialog.setprogressstyle(progressdialog.style_spinner); // 设置进度条风格, 风格为圆形, 旋转的 mypdialog.settitle("google"); // 设置 ProgressDialog 标题 mypdialog.setmessage(getresources().getstring(r.string.second)); // 设置 ProgressDialog 提示信息 mypdialog.seticon(r.drawable.android); // 设置 ProgressDialog 标题图标 mypdialog.setbutton("google",this); // 设置 ProgressDialog 的一个 Button mypdialog.setindeterminate(false); // 设置 ProgressDialog 的进度条是否不明确 mypdialog.setcancelable(true); // 设置 ProgressDialog 是否可以按退回按键取消 mypdialog.show(); // 让 ProgressDialog 显示 6

ProgressDialog 中的长形进度条 代码实现 : ProgressDialog mypdialog=new ProgressDialog(this); // 实例化 mypdialog.setprogressstyle(progressdialog.style_horizontal); // 设置进度条风格, 风格为长形, 有刻度的 mypdialog.settitle(" 地狱怒兽 "); // 设置 ProgressDialog 标题 mypdialog.setmessage(getresources().getstring(r.string.second)); // 设置 ProgressDialog 提示信息 mypdialog.seticon(r.drawable.android); // 设置 ProgressDialog 标题图标 mypdialog.setprogress(59); // 设置 ProgressDialog 进度条进度 mypdialog.setbutton(" 地狱曙光 ",this); // 设置 ProgressDialog 的一个 Button mypdialog.setindeterminate(false); // 设置 ProgressDialog 的进度条是否不明确 mypdialog.setcancelable(true); // 设置 ProgressDialog 是否可以按退回按键取消 mypdialog.show(); // 让 ProgressDialog 显示 7

AlertDialog.Builder AlertDialog 中的圆形 ProgressBar 1 先来设计一个 Layout, 待会儿作为一个 View, 加入 AlertDialog.Builder <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" > <LinearLayout android:id="@+id/linearlayout01" android:layout_width="wrap_content" > </LinearLayout> <ProgressBar android:layout_gravity="center_vertical center_horizontal" android:progress="57" android:id="@+id/myview_progressbar2" android:layout_width="wrap_content"> 8

</ProgressBar> </LinearLayout> 2 代码罗 private AlertDialog.Builder AlterD,AlterD2; // 定义提示对话框 private LayoutInflater layoutinflater; // 定义布局过滤器 private LinearLayout mylayout; // 定义布局 layoutinflater2=(layoutinflater) getsystemservice(this.layout_inflater_service); // 获得系统的布局过滤服务 mylayout2=(linearlayout) layoutinflater2.inflate(r.layout.roundprogress, null); // 得到事先设计好的布局 AlterD2.setTitle(getResources().getString(R.string.RoundO)); // 设置对话框标题 AlterD2.setIcon(R.drawable.ma); // 设置对话框图标 AlterD2.setMessage(getResources().getString(R.string.ADDView)); // 设置对话框提示信息 AlterD2.setView(myLayout2); // 设置对话框中的 View AlterD2.show(); // 让对话框显示 9

AlertDialog 中的长形 ProgressBar( 可控制 ) 1 先来设计一个 Layout, 待会儿作为一个 View, 加入 AlertDialog.Builder <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" > <Button android:text="-" android:layout_width="50dp" android:id="@+id/myview_bt_down"> </Button> <ProgressBar android:layout_gravity="center_vertical" style="?android:attr/progressbarstylehorizontal" 10

android:id="@+id/myview_progressbar" android:progress="57" android:layout_width="178dp"> </ProgressBar> <Button android:text="+" android:layout_width="50dp" android:id="@+id/myview_bt_up"> </Button> </LinearLayout> 2 代码罗 private AlertDialog.Builder AlterD,AlterD2; // 定义提示对话框 private LayoutInflater layoutinflater; // 定义布局过滤器 private LinearLayout mylayout; // 定义布局 layoutinflater=(layoutinflater) getsystemservice(this.layout_inflater_service); // 获得系统的布局过滤服务 mylayout=(linearlayout) layoutinflater.inflate(r.layout.myview, null); // 得到事先设计好的布局 myup=(button) mylayout.findviewbyid(r.id.myview_bt_up); mydown=(button) mylayout.findviewbyid(r.id.myview_bt_down); mypro=(progressbar)mylayout.findviewbyid(r.id.myview_progressbar); // 通过 mylayout.findviewbyid 来获取自定义 View 中的 Widget 控件元素 myup.setonclicklistener(this); // 设置对话框 View 中的按钮监听器 mydown.setonclicklistener(this); // 设置对话框 View 中的按钮监听器 mypro.setprogress(tag); // 设置一个 Tag 作为进度值 AlterD.setTitle(getResources().getString(R.string.RectO)); // 设置对话框标题 AlterD.setIcon(R.drawable.mb); // 设置对话框图标 AlterD.setMessage(getResources().getString(R.string.ADDView)); // 设置对话框提示信息 AlterD.setView(myLayout); // 设置对话框添加的 View AlterD.setPositiveButton("OK", new DialogInterface.OnClickListener(){ 11

@Override public void onclick(dialoginterface dialog, int which) { // TODO Auto-generated method stub MyProgressBar.Tag=mypro.getProgress(); ); // 设置对话框按钮, 以及按钮的事件监听器 AlterD.show(); // 让对话框显示 3 进度条进度值的按钮事件 myup.setonclicklistener(this); // 设置对话框 View 中的按钮监听器 mydown.setonclicklistener(this); // 设置对话框 View 中的按钮监听器对应的代码 : @Override public void onclick(view button) { // TODO Auto-generated method stub SwitchUPorDown(button); private void SwitchUPorDown(View button) { switch (button.getid()) { case R.id.myView_BT_Up: { mypro.incrementprogressby(1); break; case R.id.myView_BT_Down: { mypro.incrementprogressby(-1); default: break; break; 12

App Widget 中的进度条 Widget 中的圆形 ProgressBar 这个很简单, 在 Widget 中没有多大意思, 不再敷述 Widget 中的长形 ProgressBar( 可控制 ) Widget 的实现就不再重复, 假设您已经把 Widget 布局, 相应设置已经设置好了 也可以在 桌面加入类似上面图中的样式 现在我们来实现一下按钮事件, 与进度条的交互 下面还是简单讲解一下 Widget 的设计与部署 13

1 设计 Widget 布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/widget" android:layout_height="74dp" android:layout_width="296dp"> <Button android:text="-" android:layout_gravity="center_vertical" android:layout_width="50dp" android:id="@+id/widget_bt_down" android:layout_marginleft="10dp"> </Button> <ProgressBar android:layout_gravity="center_vertical" style="?android:attr/progressbarstylehorizontal" android:layout_width="178dp" android:id="@+id/widget_progressbar"> </ProgressBar> <Button android:text="+" android:layout_gravity="center_vertical" android:layout_width="50dp" android:id="@+id/widget_bt_up"> </Button> </LinearLayout> 2 新增一个.res/xml 目录, 加入 appwidget-provider <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initiallayout="@layout/widgetlayout" android:updateperiodmillis="8660000" android:minwidth="296dp" android:minheight="74dp"> </appwidget-provider> 14

3 实现一个 AppWidgetProvider 子类 package zyf.test.progressbar; import android.appwidget.appwidgetmanager; import android.appwidget.appwidgetprovider; import android.content.context; import android.content.intent; public class App extends AppWidgetProvider { @Override public void onenabled(context context) { // TODO Auto-generated method stub super.onenabled(context); @Override public void onreceive(context context, Intent intent) { // TODO Auto-generated method stub super.onreceive(context, intent); @Override public void onupdate(context context, AppWidgetManager appwidgetmanager, int[] appwidgetids) { // TODO Auto-generated method stub super.onupdate(context, appwidgetmanager, appwidgetids); 4 配置 Manifest, 进行注册 <receiver android:name="appwidget"> <intent-filter> <action android:name="android.appwidget.action.appwidget_update"></action> </intent-filter> <meta-data </meta-data> </receiver> android:resource="@xml/appwidget" android:name="android.appwidget.provider"> 15

这里实现按钮与进度条的交互 (Widget 自己广播发送与接收 ) 1 按钮的消息发送 @Override public void onupdate(context context, AppWidgetManager appwidgetmanager, int[] appwidgetids) { // TODO Auto-generated method stub final int N = appwidgetids.length; // Perform this loop procedure for each App Widget that belongs to this provider for (int i=0; i<n; i++) { int appwidgetid = appwidgetids[i]; RemoteViews views= new RemoteViews(context.getPackageName(), R.layout.widgetlayout); Intent UPintent=new Intent("zyf.test.widget.UP"); Intent DOWNintent=new Intent("zyf.test.widget.DOWN"); // 实例化两个带有 Action 的 Intent PendingIntent pendingintentup =PendingIntent.getBroadcast(context, 0, UPintent, 0); PendingIntent pendingintentdown =PendingIntent.getBroadcast(context, 0, DOWNintent, 0); // 实例化两个以 Intent 来构造的 PendingIntent views.setonclickpendingintent(r.id.widget_bt_up, pendingintentup); views.setonclickpendingintent(r.id.widget_bt_down, pendingintentdown); // 给 View 上的两个按钮绑定事件, 这里是广播消息的发送 appwidgetmanager.updateappwidget(appwidgetid, views); 2 Widget 自身消息接收, 使用 intent.getaction() 来获取 Action @Override public void onreceive(context context, Intent intent) { // TODO Auto-generated method stub super.onreceive(context, intent); if(intent.getaction().equals("zyf.test.widget.up")){ Tag+=5; if(tag>100){ Tag=100; views.setprogressbar(r.id.widget_progressbar, 100, Tag, false); appmanager.updateappwidget(thiswidget, views); 16

if(intent.getaction().equals("zyf.test.widget.down")){ Tag-=5; if(tag<0){ Tag=0; views.setprogressbar(r.id.widget_progressbar, 100, Tag, false); appmanager.updateappwidget(thiswidget, views); 3 进度条的进度值设置 views.setprogressbar(r.id.widget_progressbar, 100, Tag, false); // 设置 Widget 上的进度条的进度值 // 第一个参数,Widget 上进度条 ID // 第二个参数, 进度条最大值 // 第三个参数 Tag, 一个 int 值, 就是设置的进度值 // 第四个参数, 是否是要进度条不确定 注意了,Widget 自身的 onreceive() 方法如果要接收其他的 Action 广播 那就必须在 Manifest 中, 在 Intent-filter 中添加 Action: <receiver android:name="appwidget"> <intent-filter> <action android:name="android.appwidget.action.appwidget_update"></action> <action android:name="zyf.test.widget.up"></action> <action android:name="zyf.test.widget.down"></action> </intent-filter> <meta-data </meta-data> </receiver> android:resource="@xml/appwidget" android:name="android.appwidget.provider"> 如有什么问题和不对地方, 请联系我 :zyf19870302@126.com ( 地狱怒兽 ) 17

18