我已经在stackoverflow上查看了Android API和其他帖子,但一直无法解决这个问题.
我的应用程序将文件下载到SD卡.我想在文件下载时弹出"加载..."对话框,然后在下载完成后消失.这是我使用android API提出的:
ProgressDialog pd = ProgressDialog.show(this,"","Loading. Please wait...",true);
//download file
pd.cancel();
Run Code Online (Sandbox Code Playgroud)
但是对话框实际上并没有显示.当我调试它时,它声称它正在显示,但它显然不在屏幕上.
我能做什么?
我正在玩android,我正在创建一个简单的Twitter应用程序来测试我到目前为止学到的东西.但我遇到了一个我不明白的问题.我创建了一个线程来获取推文,没有问题,但随后添加了一个ProgressDialog来显示该线程何时运行.这样做会导致非常不寻常的行为.如果用户从垂直方向旋转到水平方向,程序按预期运行,没有问题,但如果他然后旋转,程序崩溃说窗口泄漏.
问题只发生在水平到垂直布局开关上.我知道如果你在对话框运行时尝试旋转的问题,但我确保对话框已经完成运行并在旋转之前解除,它仍然会崩溃.继承我的代码:
package com.onesmartpuppy.puppytweet;
import java.util.ArrayList;
import com.github.droidfu.widgets.WebImageView;
import winterwell.jtwitter.Twitter;
import winterwell.jtwitter.Twitter.Status;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
public class PuppyTweet extends ListActivity implements OnClickListener {
private ProgressDialog m_ProgressDialog = null;
private ArrayList<Status> messages = null;
private TweetAdapter m_adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); …Run Code Online (Sandbox Code Playgroud) 嘿伙计们,我在打开一个活动的进度对话框上遇到了问题(在例子中称为活动2).活动2有很多代码要在此OnCreate事件中执行.
final ProgressDialog myProgressDialog = ProgressDialog.show(MyApp.this,getString(R.string.lstAppWait), getString(R.string.lstAppLoading), true);
new Thread() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
showApps();
}
});
myProgressDialog.dismiss();
}
}.start();
Run Code Online (Sandbox Code Playgroud)
showApps函数启动活动2.
如果我在活动1上的按钮点击事件上执行此代码,我会看到进度,但是她没有移动并且在2或3秒内有一个黑屏,以便android显示活动.
如果我在Activity2的OnCreate中执行此代码并且如果我用OnCreate上的代码替换showApps,则Activity1冻结2秒,我没有看到进度对话框,并且在看到结果之前再次冻结活动2上的2秒.
一个主意 ?
我想在播放视频之前显示进度对话框.我尝试下面的链接示例播放视频.
http://davanum.wordpress.com/2009/12/04/android-%E2%80%93-videomusic-player-sample-take-2/
它可以工作但是需要更多的时间来播放视频,所以我想在开始播放视频之前显示进度对话框.所以请在播放视频之前告诉我如何显示进度对话框.
谢谢.
最好的祝福.
我一直在开发应用程序,我有两项活动.
第一个活动被叫第二个获得下载网址.
在OnActivityResult第一个Activity的功能中,有一个ProgressDialog
显示使用该URL的图像下载状态.
问题是该活动中未显示进度对话框.
protected void onActivityResult(int requestCode, int resultCode, Intent imagePicked)
{
super.onActivityResult(requestCode, resultCode, imagePicked);
if(resultCode==RESULT_OK)
{
ProgressDialog progressDialog=ProgressDialog.show(this, "", "Loading Image");
switch(requestCode)
{
case CharacterSelector.GetFaceBookImage:
//Toast.makeText(this, "onFacebookimageresult", Toast.LENGTH_SHORT).show();
String ImageUrl=imagePicked.getStringExtra("DownloadLink");
WebService getImage=new WebService(ImageUrl);
Log.d("Selected Img url", ""+ImageUrl);
InputStream inputStream;
try
{
inputStream = getImage.getHttpStream(ImageUrl);
getImage=null;
Bitmap bitmap=BitmapFactory.decodeStream(inputStream);
inputStream=null;
mybitmapDrawable=new BitmapDrawable(bitmap);
addImageUserImage(mybitmapDrawable.mutate());
progressDialog.dismiss();
bitmap=null;
}
catch (IOException e)
{
//Show server Error message:
e.printStackTrace();
}
break;
Run Code Online (Sandbox Code Playgroud)
此致,Kariyachan
我有一个ProgressBar.它工作正常,但我需要显示最大值和当前值.他们不在那里.
我需要更改为ProgressDialog吗?
澄清:
我正在展示ProgressBar.酒吧出现完美,但我希望数字也出现.因此,例如,最大值为1000,当前点为300,然后我想要1000出现,栏的结尾和300出现在栏上或其下方.
我使用此类作为List Adapter来填充ListView.显示的行取决于"奖励"数组中的数据类型.在执行ProgressBar时,它显示没有数字.
码:
private class AwardsAdapter extends ArrayAdapter <AwardItem>{
private ArrayList<AwardItem> awards = new ArrayList<AwardItem>();
public AwardsAdapter(Context context, int textViewResourceId, ArrayList<AwardItem> awards) {
super(context, textViewResourceId,awards);
this.awards = awards;
// TODO Auto-generated constructor stub
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)AwardsActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.awards_row, parent, false);
}
AwardItem award = awards.get(position);
ProgressBar pb = (ProgressBar) v.findViewById(R.id.pgbAwardProgress);
if(award.award_type == PROGRESSIVE) {
pb.setVisibility(View.VISIBLE); …Run Code Online (Sandbox Code Playgroud) 我有一个简单的代码应该执行一项任务,当单击按钮下载文件,将其保存到SD卡,然后打开它.一切正常,除了在下载期间,对于较大的文件,连接丢失和进度条挂起 - 几乎总是在20%.我搜索并搜索过,无法弄清楚如何保持连接活动并允许下载完成.任何想法如何保持连接活动,以便下载完成而不是停滞在20%?
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class DownloadTestActivity extends Activity {
public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private Button startBtn;
private ProgressDialog mProgressDialog;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); …Run Code Online (Sandbox Code Playgroud) 是否可以更改progressDialog文本?
我的代码:
progressDialog = ProgressDialog.show(BackupActivity.this, "In progress", "test1");
new Thread() {
public void run() {
try{
sleep(10000);
} catch (Exception e) {
Log.e("tag", e.getMessage());
} progressDialog.dismiss();
}
}.start();
}
});
selectExportsDialog = builder.create();
}
selectExportsDialog.show();
break; }
Run Code Online (Sandbox Code Playgroud)
我想在示例10秒后将test1更改为test2.可能?
谢谢
我正在Android 5.0上迁移我的应用程序,即Lollipop设备,我有关于进度对话的问题,它在棒棒糖设备上完美运行,但在棒棒糖上它有白色背景,如图所示 
但在棒棒糖前设备中它具有透明背景

以下是我的代码:
布局中的progress.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@android:color/transparent" >
<ProgressBar
android:id="@+id/progressBar3"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:layout_centerHorizontal="true"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/myprogress"
android:minHeight="48dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
drawable中的myprogress.xml
<shape
android:shape="oval"
android:useLevel="false" >
<size
android:height="48dip"
android:width="48dip" />
<gradient
android:centerColor="#ff001100"
android:centerY="0.50"
android:endColor="#ffffffff"
android:startColor="#ff000000"
android:type="sweep"
android:useLevel="false" />
</shape>
Run Code Online (Sandbox Code Playgroud)
在Java中我正在使用这样的
public ProgressDialog mProgressDialog;
if (mProgressDialog != null && mProgressDialog.isShowing()) {
mProgressDialog.cancel();
}
mProgressDialog = new ProgressDialog(context);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
mProgressDialog.setContentView(R.layout.progress);
Run Code Online (Sandbox Code Playgroud) 我有一个从片段调用的类.在进度更新被调用但消息不会更新.我也没有看到任何进度条或微调器.只是标题和消息,看到一些类似的问题,但没有任何进度条根本没有显示.此外,我的消息在onProgressUpdate中根本不会更新,但打印出的值确实显示它在onProgressUpdate内增量.
编辑:这是我开始任务的方式
DownloadFilesTask download = new DownloadFilesTask();
download.execute(urls.toArray(new String[urls.size()]));
Run Code Online (Sandbox Code Playgroud)
这是班级
private class DownloadFilesTask extends AsyncTask<String, Integer, Long> {
ProgressDialog progressDialog;
@Override
protected void onPreExecute()
{
progressDialog = ProgressDialog.show(getActivity(), "Downloading","Downloaded 0/"+urls.size(), false);
progressDialog.setProgress(0);
progressDialog.setMax(urls.size());
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
}
@Override
protected Long doInBackground(String[] urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
//Do things in background here
publishProgress(new Integer[] {i});
}
return totalSize;
}
@Override
protected void onProgressUpdate(final Integer... progress) {
System.out.println(progress[0]); //This …Run Code Online (Sandbox Code Playgroud) android ×10
progressdialog ×10
java ×3
dialog ×2
progress-bar ×2
asynchronous ×1
download ×1
textview ×1
xml ×1