在创建PDF文件的过程中单击按钮时如何显示进度条,在完成创建文件后如何隐藏进度条?
public class TwoFragment extends android.support.v4.app.Fragment {
private View v;
Intent chooser=null;
String myInt="";
String ciao="";
private String string="";
private ProgressBar pdfProgress;
ProgressTask task;
public TwoFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_two, container, false);
Button mButton = (Button) rootView.findViewById(R.id.newbutton);
mButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//sendemail();
// pdfProgress.setVisibility(View.GONE);
/* pdfProgress.setVisibility(View.VISIBLE);
createPDF();
pdfProgress.setVisibility(View.GONE);
viewPDF();*/
/*MyAsyncTask myTask = new MyAsyncTask();
myTask.execute();
*/
showProgress();
}
});
TextView titolo3 = (TextView)rootView.findViewById(R.id.result);
TextView titolo2 = (TextView)rootView.findViewById(R.id.result2);
TextView titolo4 = (TextView)rootView.findViewById(R.id.resultpizze);
pdfProgress = (ProgressBar)rootView.findViewById(R.id.progressbar);
pdfProgress.setVisibility(View.GONE);
//pdfProgress.setVisibility(View.INVISIBLE);
//TextView titolo = (TextView)rootView.findViewById(R.id.quantità3);
/* class MyAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
// This runs in new thread!!!
// Always run long operations in another thread, so GUI will never be blocked
createPDF();
return null;
}
@Override
protected void onPostExecute(Void v) {
// This runs in MAIN thread, after the job's done.
// You always have to update gui from main thread
pdfProgress.setVisibility(View.GONE);
viewPDF();
}
}
*/
Bundle bundle2=getArguments();
if(bundle2 != null){
string = bundle2.getString("scelta2");
titolo3.setText(string);
}
/* Bundle bundle2=getArguments();
if(bundle2 != null){
// myInt = bundle2.getString("scelta2",myInt);
cacca=bundle2.getString("result",null);
//cacca=myInt;
// Log.d("ciao",cacca);
titolo3.setText(cacca);
}*/
//titolo3.setText(myInt);
/* Bundle bundle3=getArguments();
if(bundle3 != null){
// String myInt3 = bundle3.getString("totalebirre", null);
// cazzo2=Integer.parseInt(myInt3);
int cazzo2=bundle3.getInt("totalebirre");
titolo2.setText(String.valueOf(cazzo2));
}
Bundle bundle=getArguments();
if(bundle != null){
// String myInt2 = bundle2.getString("totalepizze", null);
// cazzo=Integer.parseInt(myInt2);
//titolo2.setText(myInt2);
String string=bundle.getString("scelta3", null);
titolo4.setText(string);
}
*/
return rootView;
}
/* public void sendemail(){
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setData(Uri.parse("mailto:"));
String[] to={"marco_marcoletto@hotmail.it"};
intent.putExtra(Intent.EXTRA_EMAIL,to);
intent.putExtra(Intent.EXTRA_SUBJECT, "ciao");
intent.putExtra(Intent.EXTRA_TEXT, "zao");
intent.setType("message/rfc822");
chooser=intent.createChooser(intent,"manda email");
startActivity(chooser);
}*/
//@TargetApi(Build.VERSION_CODES.M)
public void createPDF() {
Document doc = new Document();
try {
String path = Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/droidText";
File dir = new File(path);
if (!dir.exists())
dir.mkdirs();
Log.d("PDFCreator", "PDF Path: " + path);
//File file = new File(dir, "sample.pdf");
File file = new File(dir, "salve.pdf");
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
// open the document
doc.open();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeResource(getContext()
.getResources(), R.drawable.androtuto);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
Image myImg = Image.getInstance(stream.toByteArray());
myImg.setAlignment(Image.MIDDLE);
// add image to document
doc.add(myImg);
Paragraph p1 = new Paragraph(string);
Font paraFont = new Font(Font.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
// add paragraph to document
doc.add(p1);
Paragraph p2 = new Paragraph("Bonjour Android Tuto");
Font paraFont2 = new Font(Font.COURIER, 14.0f, Color.GREEN);
p2.setAlignment(Paragraph.ALIGN_CENTER);
p2.setFont(paraFont2);
doc.add(p2);
stream = new ByteArrayOutputStream();
bitmap = BitmapFactory.decodeResource(getContext()
.getResources(), R.drawable.android);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
myImg = Image.getInstance(stream.toByteArray());
myImg.setAlignment(Image.MIDDLE);
// add image to document
doc.add(myImg);
// set footer
Phrase footerText = new Phrase("Pied de page ");
HeaderFooter pdfFooter = new HeaderFooter(footerText, false);
doc.setFooter(pdfFooter);
} catch (DocumentException de) {
// Log.e("PDFCreator", "DocumentException:" + de);
Log.e("PDFCreator", "DocumentException:" + de.getMessage());
} catch (IOException e) {
// Log.e("PDFCreator", "ioException:" + e);
Log.e("PDFCreator", "DocumentException:" + e.getMessage());
} finally {
doc.close();
}
}
public void viewPDF(){
String path = "/sdcard/droidText/salve.pdf";
File targetFile = new File(path);
Uri targetUri = Uri.fromFile(targetFile);
Intent intent;
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(targetUri, "application/pdf");
startActivity(intent);
}
private class ProgressTask extends AsyncTask<Integer,Integer,Void> {
protected void onPreExecute() {
pdfProgress.setMax(100); // set maximum progress to 100.
}
protected void onCancelled() {
pdfProgress.setMax(0); // stop the progress
}
protected Void doInBackground(Integer... params) {
int start=params[0];
for(int i=start;i<=100;i+=5){
try {
boolean cancelled=isCancelled();
if(!cancelled) {
publishProgress(i);
Log.v("Progress","increment " + i);
//onProgressUpdate(i);
SystemClock.sleep(1000);
}
createPDF();
} catch (Exception e) {
Log.e("Error", e.toString());
}
}
return null;
}
protected void onProgressUpdate(Integer... values) {
// increment progress bar by progress value
//setProgress(10);
}
protected void onPostExecute(Void result) {
// async task finished
Log.v("Progress", "Finished");
viewPDF();
}
}
public void showProgress() {
task = new ProgressTask();
// start progress bar with initial progress 10
///////////////////task.execute(10,10,null);
task.execute(10);
}
}
此代码将使用推荐的AsyncTask来完成您想做的事情!
private class MakePDF extends AsyncTask<Void, Void, Void> {
private ProgressDialog processingDialog;
Context cnt = null;
MakePDF(Context cnt)
{
this.cnt = cnt;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
processingDialog = ProgressDialog.show( this.cnt, "Creating PDF", "Please wait ...", true, false);
}
@Override
protected Void doInBackground(Void... arg0) {
createPDF();
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
processingDialog.dismiss();
viewPDF();
}
}
现在使用以下命令在AsyncTask上方调用
new MakePDF(ActivityName.this).execute(); //here in constructor pass context of an calling activity.
从你的活动课
问题内容: 有谁知道用PHP创建文件上传进度条的任何方法吗?我经常听到这是不可能的。 我有一个主意,但不确定是否可行:上传正常文件,但提交至iframe。提交后,将文件信息(大小和临时位置)存储在会话中。同时,每隔10秒启动一次AJAX调用,以检查文件大小与会话中存储的大小。这会将大小返回给AJAX,然后将调整进度条的大小,并可能向用户显示上载的大小。 有什么想法吗? 问题答案: 您可以尝试使用Y
问题内容: 我希望允许用户浏览文件并将其上传到我的ASP.NET MVC应用程序中的服务器。 如果有可能,我有兴趣添加一个进度条以显示已上传了多少文件。 有人有这样的例子吗?我应该使用jQuery来做到这一点吗? 问题答案: ASP.NET MVC的优点在于,您几乎可以选择任何现成的上载组件,并且可以毫无问题地使用它。 这个jQuery插件是一个不错的选择,也是我在项目中使用的一个插件: Uplo
问题内容: 我正在使用javafx构建桌面应用程序,我正在使用ftp下载约500 MB的文件。下载进行时,我需要在进度条上显示%。我还需要提供一个取消正在进行的下载过程的选项。 这是我下载文件的代码。 问题答案: 您应该使自己熟悉JavaFX中的并发性。 您可以在网上找到一些有关所需内容的示例,例如ProgressBar和Background Processes 。
当我单击登录按钮时,我想显示,并且移动到另一个页面需要时间。我该怎么做?
我在windows power shell中使用代码git init创建了一个git文件夹,但我看不到创建它的文件夹。如果git文件夹是隐藏的,那么我如何访问它们并使它们可见,因为我希望它们显示在Visual Studio代码中?
问题内容: 好的,这样我就可以使用Java FTP上传文件,我想更新标签和进度条。用百分比文本标签,用百分比int值标记。现在,使用当前代码,在上传结束时只能获得100和完整条。在上传过程中,它们均未更改。 这里是: 问题答案: 从它的声音(并且没有任何证据可以证明主观)看来,您在事件调度线程中处理一个耗时的动作 您可能想阅读Swing中的并发性以获得更多了解 我建议使用SwingWorker进行