`
shenjichao2009
  • 浏览: 96148 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android中Intent和ProgressBar的结合使用

 
阅读更多

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="app_name">IntentProgressBar</string>
 <string name="start">开始</string>
</resources>

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="
http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">

 <ProgressBar android:id="@+id/progressBarId"
  android:layout_width="fill_parent" android:layout_height="wrap_content"
  style="@android:style/Widget.ProgressBar.Horizontal" android:max="200"
  android:visibility="gone" />

 <Button android:id="@+id/startButtonId" android:layout_width="fill_parent"
  android:layout_height="wrap_content" android:text="@string/start" />

</LinearLayout>

 

IntentProgressBarActivity.java

package com.duoguo.android;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;

/**
 * Intent在ProgressBar中的使用
 *
 * @author shyboy(
897948924@qq.com)
 *
 */
public class IntentProgressBarActivity extends Activity {

 private ProgressBar progressBar;// 声明ProgressBar控件
 private Button startButton;// 声明Button控件

 @Override
 public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  progressBar = (ProgressBar) findViewById(R.id.progressBarId);// 根据控件id获取ProgressBar控件对象
  startButton = (Button) findViewById(R.id.startButtonId);// 根据控件id获取Button控件对象
  startButton.setOnClickListener(new StartButtonClickListener());// 为startButton按钮控件添加单击事件监听器

 }

 // 声明startButton控件的事件监听器
 class StartButtonClickListener implements OnClickListener {

  @Override
  public void onClick(View v) {

   progressBar.setVisibility(View.VISIBLE);// 设置progressBar进度条为可见
   handler.post(runnable);// 将线程添加到线程队列中

  }

 }

 // 实例化Handler对象,通过handleMessage用来接收队列中的消息
 Handler handler = new Handler() {

  @Override
  public void handleMessage(Message msg) {

   progressBar.setProgress(msg.arg1);// 设置progressBar进度条的第一进度值
   handler.post(runnable);// 将线程添加到线程队列当中

  }

 };

 // 实例化线程runnable对象
 Runnable runnable = new Runnable() {

  int i = 0;

  @Override
  public void run() {

   System.out.println("thread start");
   i += 10;

   Message message = handler.obtainMessage();// 获取消息对象
   message.arg1 = i;// 用成员变量arg1来存放i的值

   try {

    Thread.sleep(1000);// 线程休眠1s

    handler.sendMessage(message);// 将消息添加到消息队列的尾端

    if (i == progressBar.getMax()) {
     handler.removeCallbacks(runnable);// 将线程对象从消息队列中移除
     progressBar.setVisibility(View.GONE);
     i = 0;
    }

   } catch (InterruptedException e) {

    e.printStackTrace();

   }

  }
 };

}

 

希望对你有所帮助,呵呵……

0
1
分享到:
评论

相关推荐

    android自定义控件:图文编辑框,菊花样式Progressbar

    在Android开发中,自定义控件是提升应用用户体验和界面独特性的重要手段。本文将深入探讨如何创建一个图文编辑框以及实现菊花样式(也称 loading 动画)的Progressbar,这两个自定义控件。 首先,我们要理解图文...

    Android 电池电量进度条,上下滚动图片的进度条(battery)

    首先,我们需要了解Android中的进度条(ProgressBar)组件。Android SDK 提供了多种类型的进度条,包括HorizontalProgressBar(水平进度条)和CircularProgressBar(圆形进度条)。在这个场景下,我们可以选择自定义...

    android 下载progressbar

    这个过程通常会用到`ProgressBar`来显示进度,并利用`DownloadManager`来处理后台的下载任务,同时结合`BroadcastReceiver`和`Toast`对网络状态进行实时反馈。下面将详细阐述这些知识点。 首先,`ProgressBar`是...

    android下载word文档并打开

    在Android中,访问网络和存储系统是需要特定权限的。在AndroidManifest.xml文件中,你需要添加以下权限: ```xml &lt;uses-permission android:name="android.permission.INTERNET" /&gt; &lt;!-- 下载所需 --&gt; ...

    android实战 新闻客户端(android studio源程序工程)

    【Android实战:新闻客户端】 本项目是一个基于Android Studio的实战案例,主要目的是让...在实际操作中,遇到问题不要害怕,多查阅文档、参考示例,持续迭代和优化你的代码,你将逐渐成为一个熟练的Android开发者。

    Android中文翻译组——Android中文API——android.widget合集(中)

    `Android中文翻译组——Android中文API——android.widget合集(中).chm`文件很可能是这个主题的中文参考手册,包含了这些控件的详细解释、使用示例和API文档,对于初学者来说是一份宝贵的资源。建议读者仔细阅读并...

    Android代码-progress前台运算.zip

    在多线程环境中,需要确保数据的一致性和安全,可以使用 synchronize 关键字、wait() 和 notify() 方法,或者使用 Java并发工具类如 CountDownLatch 和 CyclicBarrier 进行线程间的同步与通信。 综上所述,Android...

    Android仿微信发图片的样式

    在Android中,我们可以使用系统提供的Intent来调用相机或相册,同时自定义一个图片选择界面展示最近的图片。 2. **预览功能**:用户选中图片后,可以进行预览。预览界面通常会显示多张图片,并提供删除、旋转等操作...

    android简单组合控件使用

    在Android开发中,创建用户界面时经常会涉及到控件的组合与自定义,这不仅可以...在"Android简单组合控件使用"的学习过程中,可以结合提供的"Android Widget"相关资源(如AllWidget文件),进行实践操作,加深理解。

    Android图片批量上传

    可以使用`ProgressBar`或`androidx.progressbar.widget.ProgressDialog`,并结合异步任务的回调更新进度。 8. 错误处理:确保有良好的错误处理机制,包括网络异常、服务器错误等。通常通过重试策略、错误提示来提升...

    安卓Android源码——测试进度条TestBrightness.rar

    总结,"TestBrightness"项目结合了Android的ProgressBar和屏幕亮度控制功能,旨在提供一个测试框架,用于确保这些功能的正确性和稳定性。开发者可以在这个基础上学习如何操作进度条,控制屏幕亮度,并进行相应的测试...

    安卓 android 应用启动 加载 界面 实现

    在安卓(Android)平台上...总结,创建Android应用的启动加载界面需要结合Activity的生命周期、异步加载机制以及对用户体验的理解。通过合理的设计和实现,加载界面可以成为一个增强品牌形象和提升用户体验的有效工具。

    有用的android笔记

    了解如何结合Android开发和Web技术进行混合应用的开发。 13. Android定位技术和程序锁: 包括基站定位、GPS定位以及如何在应用中实现程序锁,确保应用安全。 14. Android开发面试相关知识点: 涉及Android SDK使用...

    android例子大全

    8. **进度条设计**:Android提供了ProgressBar和SeekBar组件,可以用来显示任务的进度。开发者可以通过监听事件来更新进度条的状态。 9. **小游戏开发**:小游戏通常涉及图像处理、碰撞检测、计分系统等。Android的...

    android常用控件大全讲解

    本文将详细介绍Android中常见的控件及其使用方式,同时也会涉及一些Android项目的基本结构和配置文件。首先,我们来看看Android项目的目录结构。 1. **项目目录结构** - `src`:包含了项目的所有Java源代码,每个...

    Android Studio登录界面和跳转 MyApplication3.zip

    在这个项目中,当用户成功登录后,可能使用`startActivity()`方法结合`Intent`来跳转到新的活动(Activity)。例如,从登录界面跳转到主页面或其他用户区域。 3. **进度条显示**: - 进度条在许多情况下用于指示...

    Android 仿安卓美团界面-IT计算机-毕业设计.zip

    此外,状态管理(如加载中、错误、空数据等)也是重要的一环,可以采用`SwipeRefreshLayout`实现下拉刷新,结合`ProgressBar`或`Snackbar`提供反馈。 在源码层面,`MainActivity`通常作为应用的入口,负责初始化...

    Android辞典

    《Android辞典》是一款专为Android开发者设计的学习资源,它几乎涵盖了所有常见的Android控件,同时结合了Google API的使用,对于刚入门的开发者来说,是极佳的参考和学习工具。这款辞典以清晰的注释和详尽的解释,...

    Android 精仿QQ设置界面.zip

    此外,Android中的Intent机制,用于在Activity之间传递数据和启动服务,也是Java编程的重要部分。 4. **Material Design**:尽管是精仿QQ的界面,但可能也会遵循Material Design的设计规范,这涉及到颜色搭配、图标...

Global site tag (gtag.js) - Google Analytics