在我们制作的很多APP应用程序中,下载功能、页面转换等很多功能都需要很长的加载时间。 程序进行后台处理时,前台的ui没有反应。 如果谦让的裙子我们不做任何处理就让程序停止在那里的话。 第一,用户体验变差。 其次,如果用户谦让的裙子不耐烦,开始向界面激烈移动,程序很可能会中断,“我想如果很久没有程序响应,大家都会这么做”。 因此,需要在加载程序时显示加载对话框来解决这两个问题。
我先给你看一张效果图:
显示最新的帖子界面:
单击最热的按钮可跳转到显示最热帖子的子页面,并在加载时显示加载对话框。
这是加载完成后最热的页面:
Java代码progress dialog=progress dialog.show (http request activity.this,' Loading . ',' Pleasewait . ',true,false,false
其中,progressDialog是progressDialog的对象,show的参数是上下文、dialog显示的标题、dialog显示的信息,第三个参数是进度条是否确定如果还想设置其他属性,请检查文档。 有很多设定属性的函数。 可以使用这些函数根据需要更改对话框。
一个需要解决的问题是如何在程序加载成功后关闭对话框并显示新页面的内容。
代码如下所示。
Java代码Handlerdialoghandle=newHandler () )。
@Override
公共消息(消息msg )。
//TODOAuto-generatedmethodstub
super.Handlemessage(msg;
progressdialog.dismiss (;
}
(;
首先定义Handler对象,然后重载其handlemessage方法。 在这里删除程序诊断。
接下来以“最热”按钮为例。 “最新”按钮与其基本一致。
Java代码hotest.setonclicklistener (newonclicklistener ) )。
@Override
公共void onclick (viewv ) {
//todo自动生成方法
newest.setclickable(true;
hotest.setclickable(false;
progress dialog=progress dialog.show (http request activity.this,' Loading . ',' Pleasewait . ',true,false );
seturl (http://www.bling0.com/all/hottest/day.JSON );
newThread () }
公共语音运行(}
呼叫web服务(geturl ) );
list adapter=newsimpleadapter (http request activity.this,Hotlist,R.layout.user,newString[]{'title ',' groutle )
诊断handle.post (new runnable () )。
公共语音运行(
{
设置列表适配器(list adapter;
诊断handle.sendemptymessage (0;
}
);
}
}.start (;
}
);
}
posted on 2012-07-26 22:29地心引力阅读(1813 )注释)1)编辑集合