【Android(安卓)开发教程】显示复杂对话框
16lz
2021-01-25
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/除了“对话框”进度条,也可以创建一个显示“操作进度”的对话框,例如显示正在下载的状态。
1. 创建一个工程:Dialog。
2. main.xml中的代码。
[java] view plain copy- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns: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_dialog3"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:onClick="onClick3"
- android:text="Clicktodisplayadetailedprogressdialog"/>
- </LinearLayout>
- publicclassDialogActivityextendsActivity{
- ProgressDialogprogressDialog;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- publicvoidonClick3(Viewv){
- showDialog(1);
- progressDialog.setProgress(0);
- newThread(newRunnable(){
- publicvoidrun(){
- for(inti=1;i<=15;i++){
- try{
- //---simulatedoingsomethinglengthy---
- Thread.sleep(1000);
- //---updatethedialog---
- progressDialog.incrementProgressBy((int)(100/15));
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- }
- progressDialog.dismiss();
- }
- }).start();
- }
- @Override
- protectedDialogonCreateDialog(intid){
- switch(id){
- case1:
- progressDialog=newProgressDialog(this);
- progressDialog.setIcon(R.drawable.ic_launcher);
- progressDialog.setTitle("Downloadingfiles...");
- progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"OK",
- newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,
- intwhichButton){
- Toast.makeText(getBaseContext(),"OKclicked!",
- Toast.LENGTH_SHORT).show();
- }
- });
- progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"Cancel",
- newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,
- intwhichButton){
- Toast.makeText(getBaseContext(),"Cancelclicked!",
- Toast.LENGTH_SHORT).show();
- }
- });
- returnprogressDialog;
- }
- returnnull;
- }
- }
想要创建一个显示进度的对话框,首先要创建一个ProgressDialog类的实例,然后设置各种状态,图标、标题、样式等等:
[java] view plain copy- progressDialog=newProgressDialog(this);
- progressDialog.setIcon(R.drawable.ic_launcher);
- progressDialog.setTitle("Downloadingfiles...");
- progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- progressDialog.setButton(DialogInterface.BUTTON_POSITIVE,"OK",
- newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,
- intwhichButton){
- Toast.makeText(getBaseContext(),"OKclicked!",
- Toast.LENGTH_SHORT).show();
- }
- });
- progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE,"Cancel",
- newDialogInterface.OnClickListener(){
- publicvoidonClick(DialogInterfacedialog,
- intwhichButton){
- Toast.makeText(getBaseContext(),"Cancelclicked!",
- Toast.LENGTH_SHORT).show();
- }
- });
- progressDialog.setProgress(0);
- newThread(newRunnable(){
- publicvoidrun(){
- for(inti=1;i<=15;i++){
- try{
- //---simulatedoingsomethinglengthy---
- Thread.sleep(1000);
- //---updatethedialog---
- progressDialog.incrementProgressBy((int)(100/15));
- }catch(InterruptedExceptione){
- e.printStackTrace();
- }
- }
- progressDialog.dismiss();
- }
- }).start();
更多相关文章
- android.app.Activity 的介绍
- 使用大量checkbox的时候可能出现的小问题
- 【Android之隐藏状态栏、设置全屏、取消全屏】
- Android核心分析(19)----电话系统之GSMCallTacker
- android wifi连接打印机并获取打印机状态
- Android通话和数据传输过程分析
- 关于如何获取android状态栏高度
- Android开发应用异步检查更新代码
- Android(安卓)开发 —— Android四大组件