Не отображается индикатор выполнения в веб-просмотре

Вот мой код, который я использовал для отображения индикатора выполнения внутри веб-просмотра. Пожалуйста, исправьте мой код, чтобы отобразить индикатор выполнения в горизонтальном стиле, чтобы отслеживать, когда WebView завершает загрузку URL-адреса, показывать индикатор выполнения каждый раз, когда пользователь щелкает ссылки, добавить код для отображения индикатора выполнения.

package com.pskpartha.droidwebview;

import com.pskpartha.droidwebview.info.Info;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebSettings.PluginState;
import android.widget.ProgressBar;

public class DroidWebViewActivity extends Activity {
/** Called when the activity is first created. */
Context con;
private WebView fweBview;
private WebSettings webSettings;
ProgressBar progressBar;

String url = Info.WebUrl;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);
    con = this;
    try {
        if (!SharedPreferencesHelper.isOnline(con)) {
            AlertMessage.showMessage(con, "", "No internet connection");
            return;
        }
        updateWebView(url);

    } catch (Exception e) {
        // TODO: handle exception
    }
}


private class HelloWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);

        progressBar.setVisibility(View.GONE);
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && fweBview.canGoBack()) {
        fweBview.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);

}
public class AppWebViewClients extends WebViewClient {
     private ProgressBar progressBar;

    public AppWebViewClients(ProgressBar progressBar) {
        this.progressBar=progressBar;
        progressBar.setVisibility(View.VISIBLE);
    }
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
        progressBar.setVisibility(View.GONE);
    }
}
private void updateWebView(String url) {
    // TODO Auto-generated method stub
    progressBar = (ProgressBar) findViewById(R.id.progressBar1);
    fweBview = (WebView) findViewById(R.id.fbwebView);
    fweBview.getSettings().setJavaScriptEnabled(true);
    fweBview.getSettings().setDomStorageEnabled(true);
    fweBview.getSettings().setPluginState(PluginState.ON);
    webSettings = fweBview.getSettings();

    webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS);
    webSettings.setBuiltInZoomControls(true);

    fweBview.loadUrl(url);

    fweBview.setWebViewClient(new HelloWebViewClient());

}

// /---- Rating Button-----------------------------

public void btnRating(View v) {

    try {

        alertbox(null, null);

    } catch (Exception e) {
        // TODO: handle exception
    }

}

protected void alertbox(String title, String mymessage) {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Encourage us By Rating Our App").setCancelable(
            false).setTitle("").setPositiveButton("Rate Now",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // finish the current activity
                    // AlertBoxAdvance.this.finish();
                    /*
                     * Intent myIntent = new Intent(
                     * Settings.ACTION_SECURITY_SETTINGS);
                     * startActivity(myIntent);
                     */
                    Intent viewIntent = new Intent(
                            "android.intent.action.VIEW",
                            Uri
                                    .parse(Info.GooglePlayAppUrl));
                    startActivity(viewIntent);
                    dialog.cancel();
                }
            }).setNegativeButton("Later",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // cancel the dialog box

                    dialog.cancel();
                }
            });
    AlertDialog alert = builder.create();
    alert.show();
}

// ------------ Share button---------------------

public void btnShare(View v) {

    Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
            "    ");
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "shareBody");
    startActivity(Intent.createChooser(sharingIntent, "Share via"));
}

// ------------ Home button---------------------
public void btnHome(View v) {
    try {
        updateWebView(url);
    } catch (Exception e) {
        // TODO: handle exception
    }

    // Intent i = new Intent(DroidWebViewActivity.this,
    // DroidWebViewActivity.class); // your class
    // startActivity(i);

}

// ------------ Email button---------------------
public void btnEmail(View v) {

    Intent email = new Intent(Intent.ACTION_SEND);
    email.putExtra(Intent.EXTRA_EMAIL,
            new String[] { "" });
    email.putExtra(Intent.EXTRA_SUBJECT, Info.eMailSubject);
    email.putExtra(Intent.EXTRA_TEXT, Info.eMailDetails);
    email.setType("message/rfc822");
    startActivity(Intent.createChooser(email, "Choose an Email client :"));

}

// ------------ Call button---------------------
private void call() {
    try {
        Intent callIntent = new Intent(Intent.ACTION_CALL);
        callIntent.setData(Uri.parse("tel:"+Info.phoneNumber+""));
        startActivity(callIntent);
    } catch (ActivityNotFoundException activityException) {

    }
}

public void btnPhone(View v) {

    try {

        call();

    } catch (Exception e) {
        // TODO: handle exception
    }

}
}


 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="9"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center" >
    </LinearLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:orientation="vertical" >

            <ProgressBar
                android:id="@+id/progressBar12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center" />


    </RelativeLayout>

    <WebView
        android:id="@+id/fbwebView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

</LinearLayout>'

person Vinod    schedule 17.04.2014    source источник
comment
Используется Progress Dialog вместо Progress Bar   -  person M D    schedule 17.04.2014
comment
Вы также можете опубликовать свой xml?   -  person PankajAndroid    schedule 17.04.2014


Ответы (2)


Вот модифицированный файл Java, а также XML..

Файл Java — это DroidWebViewActivity.

и XML-файл... XML-файл

Надеюсь, это сработает для вас.

Спасибо

person PankajSharma    schedule 17.04.2014
comment
ошибка, которую он показывает - ll_web_view не может быть разрешен или не является полем - person Vinod; 17.04.2014
comment
ll_web_view Это имя файла xml.u может измениться на ваше имя файла xml..@user3543740 - person PankajSharma; 17.04.2014
comment
индикатор выполнения все еще не работает, см. здесь - ссылка - person Vinod; 17.04.2014
comment
перед загрузкой google.com вы не видели индикатор выполнения??@user3543740 - person PankajSharma; 17.04.2014
comment
нужна полоса загрузки всякий раз, когда мы нажимаем на ссылку - person Vinod; 17.04.2014

Пожалуйста, удалите

requestWindowFeature(Window.FEATURE_NO_TITLE);

и добавить

getWindow().requestFeature(Window.FEATURE_PROGRESS);

до

setContentView(R.layout.main);

Он будет отображать индикатор выполнения в верхней части экрана при загрузке URL. Надеюсь, это решит вашу проблему...

person Neha Shukla    schedule 17.04.2014
comment
Ты прав. Это отобразит Progress Bar, но в строке заголовка здесь пользователь установил requestWindowFeature(Window.FEATURE_NO_TITLE);, так что это больше не поможет. - person M D; 17.04.2014
comment
Привет, @NehaShukla, присоединяйся к этой комнате chat.stackoverflow.com/rooms/50272/android-coders - person PankajSharma; 17.04.2014