展会信息港展会大全

Android新手入门教程(六):理解Activityの显示“进度条”对话框
来源:互联网   发布日期:2016-01-14 10:54:51   浏览:1372次  

导读:当要进行耗时的操作的时候,往往会看见“请稍候”字样的对话框。例如,用户正在登入服务器,此时并不允许用户使用这个软件,或者应用程序把结果返回给用户之前,要进行某些耗时的计算。在这些情况下,显示一...

当要进行耗时的操作的时候,往往会看见“请稍候”字样的对话框。例如,用户正在登入服务器,此时并不允许用户使用这个软件,或者应用程序把结果返回给用户之前,要进行某些耗时的计算。在这些情况下,显示一个“进度条”对话框,能友好地让用户等待,同时也能阻止用户进行某些不必要的操作。

1.创建一个名为Dialog的工程。

2.main.xml中的代码。

[java] <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<Button

android:id="@+id/btn_dialog2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="onClick2"

android:text="Click to display a progress dialog" />

</LinearLayout>

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

<Button

android:id="@+id/btn_dialog2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:onClick="onClick2"

android:text="Click to display a progress dialog" />

</LinearLayout>3.DialogActivity.java中的代码。

[java] package net.horsttnann.Dialog;

import net.horsttnann.Dialog.R;

import android.app.Activity;

import android.app.ProgressDialog;

import android.os.Bundle;

import android.view.View;

public class DialogActivity extends Activity {

ProgressDialog progressDialog;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

public void onClick2(View v) {

// ---show the dialog---

final ProgressDialog dialog = ProgressDialog.show(this,

"Doing something", "Please wait...", true);

new Thread(new Runnable() {

public void run() {

try {

// ---simulate doing something lengthy---

Thread.sleep(5000);

// ---dismiss the dialog---

dialog.dismiss();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();

}

}

package net.horsttnann.Dialog;

import net.horsttnann.Dialog.R;

import android.app.Activity;

import android.app.ProgressDialog;

import android.os.Bundle;

import android.view.View;

public class DialogActivity extends Activity {

ProgressDialog progressDialog;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

public void onClick2(View v) {

// ---show the dialog---

final ProgressDialog dialog = ProgressDialog.show(this,

"Doing something", "Please wait...", true);

new Thread(new Runnable() {

public void run() {

try {

// ---simulate doing something lengthy---

Thread.sleep(5000);

// ---dismiss the dialog---

dialog.dismiss();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();

}

}

4.按F11调试,点击按钮,弹出“进度条”对话框。

效果图:

提示:

基本上,想要创建一个“进度条”对话框,只需要创建一个ProgressDialog类的实例,然后调用show()方法:

[java] // ---show the dialog---

final ProgressDialog dialog = ProgressDialog.show(this,

"Doing something", "Please wait...", true);

// ---show the dialog---

final ProgressDialog dialog = ProgressDialog.show(this,

"Doing something", "Please wait...", true);因为它是一个“模态”的对话框,所以它就会把其他UI组件给遮盖住,直到它被解除。如果想要在后台执行一个“长期运行”的任务,可以创建一个线程。run()方法里面的代码将会在一个独立的线程里面执行。下面的代码使用sleep()方法,模拟了一个需要5秒执行的后台任务:

[java] new Thread(new Runnable() {

public void run() {

try {

// ---simulate doing something lengthy---

Thread.sleep(5000);

// ---dismiss the dialog---

dialog.dismiss();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();

new Thread(new Runnable() {

public void run() {

try {

// ---simulate doing something lengthy---

Thread.sleep(5000);

// ---dismiss the dialog---

dialog.dismiss();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}).start();5秒钟之后,执行dismiss()方法,对话框就被解除了。

摘自horsttnann的专栏

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港