Java 如何在android中使屏幕变暗并启动progressBar?
我正在编写一个android应用程序,我想要在执行Java 如何在android中使屏幕变暗并启动progressBar?,java,android,eclipse,android-progressbar,Java,Android,Eclipse,Android Progressbar,我正在编写一个android应用程序,我想要在执行httpclient.execute()时,屏幕变暗,出现一个进度条,直到执行这一行,我该怎么办?我的代码如下: ProgressBar x = (ProgressBar) findViewById("R.id.progress") ; x.setVisibility(ProgressBar.VISIBLE) ; httpclient.execute() x.setVisibility(ProgressBar.GONE) ; 但使用此代码时,只
httpclient.execute()
时,屏幕变暗,出现一个进度条,直到执行这一行,我该怎么办?我的代码如下:
ProgressBar x = (ProgressBar) findViewById("R.id.progress") ;
x.setVisibility(ProgressBar.VISIBLE) ;
httpclient.execute()
x.setVisibility(ProgressBar.GONE) ;
但使用此代码时,只会显示进度条,屏幕不会变暗。如果您的HTTPClient处于异步任务中,请将进度条可见性置于“onPostExecute”中 要使屏幕变暗,您需要显示一个警报对话框/对话框片段,并使用进度条设置自定义布局,然后在加载完成时将其关闭
这将自动使屏幕变暗。如果您的HTTPClient处于异步任务中,请将进度条可见性置于“onPostExecute”中 要使屏幕变暗,您需要显示一个警报对话框/对话框片段,并使用进度条设置自定义布局,然后在加载完成时将其关闭 这将自动使屏幕变暗。在asynctas中添加httpclient.execute()部分 在preexecute方法中添加pretask,在postexecute方法中添加post task。在asynctas中添加httpclient.execute()部分
在preexecute方法中添加pretask,在postexecute方法中添加post task。首先,我建议您在异步类中完成所有的联网。 您可以使用以下模板将代码放入异步类中。 将ProgressDialog作为类变量
YouClass
{
ProgressDialog dialog;
onCreate(....)
{
//Execute the async task here.
new myNetworkingTask().execute("");
}
private class myNetworkingTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params)
{
//In this method you will do the networking task
httpclient.execute();
}
return "";
}
@Override
protected void onPostExecute(String result) {
//In this method you will hide the progress bar
dialog.dismiss();
}
@Override
protected void onPreExecute() {
//In this method you will display the progress bar.
dialog = ProgressDialog.show(MyActivity.this, "",
"Loading. Please wait...", true);
}
@Override
protected void onProgressUpdate(Void... values) {
}
YouClass
{
进程对话;
onCreate(…)
{
//在这里执行异步任务。
新建myNetworkingTask().execute(“”);
}
私有类myNetworkingTask扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…参数)
{
//在这种方法中,您将完成联网任务
httpclient.execute();
}
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串结果){
//在此方法中,您将隐藏进度条
dialog.dismise();
}
@凌驾
受保护的void onPreExecute(){
//在此方法中,您将显示进度条。
dialog=ProgressDialog.show(MyActivity.this,“,
“正在加载。请稍候…”,正确);
}
@凌驾
受保护的void onProgressUpdate(void…值){
}
首先,我建议您在异步类中完成所有联网。
您可以使用以下模板将代码放入异步类中。
将ProgressDialog作为类变量
YouClass
{
ProgressDialog dialog;
onCreate(....)
{
//Execute the async task here.
new myNetworkingTask().execute("");
}
private class myNetworkingTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params)
{
//In this method you will do the networking task
httpclient.execute();
}
return "";
}
@Override
protected void onPostExecute(String result) {
//In this method you will hide the progress bar
dialog.dismiss();
}
@Override
protected void onPreExecute() {
//In this method you will display the progress bar.
dialog = ProgressDialog.show(MyActivity.this, "",
"Loading. Please wait...", true);
}
@Override
protected void onProgressUpdate(Void... values) {
}
YouClass
{
进程对话;
onCreate(…)
{
//在这里执行异步任务。
新建myNetworkingTask().execute(“”);
}
私有类myNetworkingTask扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…参数)
{
//在这种方法中,您将完成联网任务
httpclient.execute();
}
返回“”;
}
@凌驾
受保护的void onPostExecute(字符串结果){
//在此方法中,您将隐藏进度条
dialog.dismise();
}
@凌驾
受保护的void onPreExecute(){
//在此方法中,您将显示进度条。
dialog=ProgressDialog.show(MyActivity.this,“,
“正在加载。请稍候…”,正确);
}
@凌驾
受保护的void onProgressUpdate(void…值){
}
httpclient是aysnctask吗?你确定你想要一个进度条而不是进度对话框吗?但是你肯定需要一个异步任务,可能会有帮助。httpclient是aysnctask吗?你确定你想要一个进度条而不是进度对话框吗?但是你肯定需要一个异步任务,可能会有帮助