android 对话框学习
首先需要创建ProgressDialog对象,然后使用线程控制进度条显示,具体源代码:
print?
001 |
package com.yarin.android.TestOnPDialog; |
|
002 |
|
003 |
import android.app.Activity; |
|
004 |
import android.app.ProgressDialog; |
005 |
import android.content.DialogInterface; |
|
006 |
import android.os.Bundle; |
007 |
import android.view.View; |
|
008 |
import android.widget.Button; |
009 |
|
|
010 |
public class PDialog extends Activity |
011 |
{ |
|
012 |
private Button mButton01,mButton02; |
013 |
|
|
014 |
int m_count = 0; |
015 |
//声明进度条对话框 |
|
016 |
ProgressDialog m_pDialog; |
017 |
|
|
018 |
@Override |
019 |
public void onCreate(Bundle savedInstanceState) |
|
020 |
{ |
021 |
super.onCreate(savedInstanceState); |
|
022 |
setContentView(R.layout.main); |
023 |
|
|
024 |
//得到按钮对象 |
025 |
mButton01 = (Button)findViewById(R.id.Button01); |
026 |
mButton02 = (Button)findViewById(R.id.Button02); |
027 |
|
|
028 |
//设置mButton01的事件监听 |
029 |
mButton01.setOnClickListener(new Button.OnClickListener() { |
|
030 |
@Override |
031 |
public void onClick(View v) |
|
032 |
{ |
033 |
// TODO Auto-generated method stub |
|
034 |
|
035 |
//创建ProgressDialog对象 |
|
036 |
m_pDialog = new ProgressDialog(PDialog.this); |
037 |
|
|
038 |
// 设置进度条风格,风格为圆形,旋转的 |
039 |
m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); |
||
040 |
|
041 |
// 设置ProgressDialog 标题 |
|
042 |
m_pDialog.setTitle("提示"); |
043 |
|
|
044 |
// 设置ProgressDialog 提示信息 |
045 |
m_pDialog.setMessage("这是一个圆形进度条对话框"); |
|
046 |
|
047 |
// 设置ProgressDialog 标题图标 |
|
048 |
m_pDialog.setIcon(R.drawable.img1); |
049 |
|
|
050 |
// 设置ProgressDialog 的进度条是否不明确 |
051 |
m_pDialog.setIndeterminate(false); |
|
052 |
|
053 |
// 设置ProgressDialog 是否可以按退回按键取消 |
|
054 |
m_pDialog.setCancelable(true); |
055 |
|
|
056 |
// 设置ProgressDialog 的一个Button |
057 |
m_pDialog.setButton("确定", new DialogInterface.OnClickListener() { |
058 |
public void onClick(DialogInterface dialog, int i) |
059 |
{ |
|
060 |
//点击“确定按钮”取消对话框 |
061 |
dialog.cancel(); |
|
062 |
} |
063 |
}); |
|
064 |
|
065 |
// 让ProgressDialog显示 |
|
066 |
m_pDialog.show(); |
067 |
} |
|
068 |
}); |
069 |
|
|
070 |
//设置mButton02的事件监听 |
071 |
mButton02.setOnClickListener(new Button.OnClickListener() { |
|
072 |
@Override |
073 |
public void onClick(View v) |
|
074 |
{ |
075 |
// TODO Auto-generated method stub |
|
076 |
|
077 |
m_count = 0; |
|
078 |
|
079 |
// 创建ProgressDialog对象 |
|
080 |
m_pDialog = new ProgressDialog(PDialog.this); |
081 |
|
|
082 |
// 设置进度条风格,风格为长形 |
083 |
m_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); |
||
084 |
|
085 |
// 设置ProgressDialog 标题 |
|
086 |
m_pDialog.setTitle("提示"); |
087 |
|
|
088 |
// 设置ProgressDialog 提示信息 |
089 |
m_pDialog.setMessage("这是一个长形对话框进度条"); |
|
090 |
|
091 |
// 设置ProgressDialog 标题图标 |
|
092 |
m_pDialog.setIcon(R.drawable.img2); |
093 |
|
|
094 |
// 设置ProgressDialog 进度条进度 |
095 |
m_pDialog.setProgress(100); |
|
096 |
|
097 |
// 设置ProgressDialog 的进度条是否不明确 |
|
098 |
m_pDialog.setIndeterminate(false); |
099 |
|
|
100 |
// 设置ProgressDialog 是否可以按退回按键取消 |
101 |
m_pDialog.setCancelable(true); |
|
102 |
|
103 |
// 让ProgressDialog显示 |
|
104 |
m_pDialog.show(); |
105 |
|
|
106 |
new Thread() |
107 |
{ |
|
108 |
public void run() |
109 |
{ |
|
110 |
try |
111 |
{ |
|
112 |
while (m_count <= 100) |
113 |
{ |
|
114 |
// 由线程来控制进度。 |
115 |
m_pDialog.setProgress(m_count++); |
|
116 |
Thread.sleep(100); |
117 |
} |
|
118 |
m_pDialog.cancel(); |
119 |
} |
|
120 |
catch (InterruptedException e) |
121 |
{ |
|
122 |
m_pDialog.cancel(); |
123 |
} |
|
124 |
} |
125 |
}.start(); |
|
126 |
|
127 |
} |
|
128 |
}); |
129 |
} |
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。