【问题标题】:Add Progress Bar Spinner to Dialog Pop Up WebView将进度条微调器添加到对话框弹出 WebView
【发布时间】:2012-09-11 03:34:30
【问题描述】:
我已尝试为以下代码实现进度条微调器。我对 android 编程相当陌生,并尝试过搜索和尝试示例。下面的代码是我为弹出窗口工作而工作的代码,并有一个带有自定义关闭按钮的 web 视图。有人可以告诉我或指导我如何使用以下代码使用进度微调器吗?谢谢。
package com.example.expopup;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.ImageButton;
public class MainActivity extends Activity {
Dialog myDialog;
Button myButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton = (Button) findViewById(R.id.ClkBtn);
myButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
myDialog = new Dialog(MainActivity.this);
myDialog.setContentView(R.layout.mydialog);
myDialog.setTitle("Test");
myDialog.setCancelable(true);
WebView myWebView = (WebView) myDialog.findViewById(R.id.testwebview);
myWebView.loadUrl("http://google.com");
ImageButton close = (ImageButton)myDialog.findViewById(R.id.Btn1);
close.setOnClickListener(
new OnClickListener(){
public void onClick(View v) {
myDialog.dismiss();
}
});
myDialog.show();
}
});
}
}
【问题讨论】:
标签:
android
webview
android-alertdialog
android-progressbar
【解决方案1】:
我不确定您对 WebView 使用的是哪种类型的布局,但您可能希望在 FrameLayout 中同时包含 WebView 和 ProgressBar,而 WebView 最初是隐藏的。然后,您可以在页面完全加载后显示 WebView 并隐藏 ProgressBar。
R.layout.mydialog
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<WebView android:id="@+id/testwebview"
android:layout_width="match_parent"
android:visibility="invisible"
android:layout_height="match_parent" />
<ProgressBar android:id="@+id/testprogressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
在您的活动中:
myButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
myDialog = new Dialog(MainActivity.this);
myDialog.setContentView(R.layout.mydialog);
myDialog.setTitle("Test");
myDialog.setCancelable(true);
final WebView myWebView = (WebView) myDialog.findViewById(R.id.testwebview);
final ProgressBar myPB = (ProgressBar) myDialog.findViewById(R.id.testprogressbar);
// Add WebViewClient to be notified of page load
myWebView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url){
// Show webview and hide progress bar
myWebView.setVisibility(View.VISIBLE);
myPB.setVisibility(View.INVISIBLE);
}
});
myWebView.loadUrl("http://google.com");
ImageButton close = (ImageButton)myDialog.findViewById(R.id.Btn1);
close.setOnClickListener(
new OnClickListener(){
public void onClick(View v) {
myDialog.dismiss();
}
});
myDialog.show();
}
});
【解决方案2】:
你可以像这样使用ProgressDialog
ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setCancelable(true);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Test");
progressDialog.show();