Android-заставка не работает.
Привет, я работаю с Android-приложением. Я только что создал веб-представление с заставкой и индикатором выполнения. Первоначально экран-заставка загружается, а затем работает индикатор выполнения, в то же время веб-URL загружается в фоновом режиме. После завершения загрузки заставка не удаляется. Так что я не могу увидеть веб-страницу. как это решить???
вот мой код
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
if(isNetworkStatusAvialable (getApplicationContext())) {
mWebView = (WebView) findViewById(R.id.webview);
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
image =(ImageView)findViewById(R.id.image);
progressBar.setMax(100);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new wapWebViewClient());
mWebView.loadUrl("http://facebook.com/");
mWebView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
//here dismiss your splash
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress)
{
if(progress < 100 && progressBar.getVisibility() == View.GONE){
progressBar.setVisibility(View.VISIBLE);
}
progressBar.setProgress(progress);
if(progress == 100) {
progressBar.setVisibility(View.GONE);
}
}
});
} else {
Toast.makeText(getApplicationContext(), "internet is not avialable ", Toast.LENGTH_LONG).show();
}
ImageButton imageButton1 = (ImageButton) findViewById(R.id.imageButton1);
ImageButton imageButton2 = (ImageButton) findViewById(R.id.imageButton2);
imageButton1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent feedbackEmail = new Intent(Intent.ACTION_SEND);
feedbackEmail.setType("text/email");
feedbackEmail.putExtra(Intent.EXTRA_EMAIL, new String[] {"prince@gmail.com"});
feedbackEmail.putExtra(Intent.EXTRA_SUBJECT, "Feedback");
startActivity(Intent.createChooser(feedbackEmail, "Send Feedback:"));
}
});
imageButton2.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
View popUpView = getLayoutInflater().inflate(R.layout.popup, null); // inflating popup layout
mpopup = new PopupWindow(popUpView, LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, true); //Creation of popup
mpopup.showAtLocation(popUpView, Gravity.BOTTOM, 0, 0); // Displaying popup
ImageButton Sub = (ImageButton) popUpView.findViewById(R.id.submit);
Sub.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mpopup.dismiss();
}
});
}
});
}
private void incrementPercentage(){
int mProgressStatus=0;
mProgressStatus++;//i declared it as a private Integer on the activity class.
progressBar.setProgress(mProgressStatus);
}
public static boolean isNetworkStatusAvialable (Context context) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null)
{
NetworkInfo netInfos = connectivityManager.getActiveNetworkInfo();
if(netInfos != null)
if(netInfos.isConnected())
return true;
}
return false;
}
private class wapWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
// when the page loaded splash screen has been invisible
mWebView.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
image.setVisibility(View.GONE);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
// if any error occured this message will be showed
Toast.makeText(WebViewExample.this, "Error is occured, please try again..." + description, Toast.LENGTH_LONG).show();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
// setting of back button
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
2 ответа
Решение
Вы можете переопределить метод WebViewClient и удалить всплеск при загрузке страницы
webView.setWebViewClient(new WebViewClient()
{
@Override
public void onPageFinished(WebView view, String url)
{
super.onPageFinished(view, url);
//here dismiss your splash
}
});
Используйте setWebViewClient() и переопределяйте onPageFinished() и скрывайте индикатор выполнения или всплеск этого метода.