0

このコードをJavaファイルに追加したい:

webView.setWebViewClient(new WebViewClient(){
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       if (url != null && url.startsWith("http://")) {
           view.getContext().startActivity(
               new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
           return true;
       } else {
           return false;
       }
   }
}

でもどこかわかりません。これは私のJavaファイルです:package sherdle.donald.duck.app; import android.app.Activity; android.os.Bundleをインポートします。import android.view.Window; android.webkit.WebChromeClientをインポートします。android.webkit.WebViewをインポートします; android.webkit.WebViewClientをインポートします; パブリッククラスWebPageLoaderはActivity{WebViewwebview;を拡張します。

final Activity activity = this;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setSupportMultipleWindows(true);
webview.getSettings().setPluginsEnabled(true);

webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)
    {
        activity.setTitle("Loading...");
        activity.setProgress(progress * 100);

        if(progress == 100)
            activity.setTitle(R.string.app_name);
    }
 });

 webview.setWebViewClient(new WebViewClient() {


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

    }
   });



 webview.loadUrl("http://www.sherdle.com/apphosting/dd");
 }

 @Override
 public void onBackPressed (){
    if(webview.canGoBack()) webview.goBack();
    else super.onBackPressed();
 }
 }

私はAndroidを初めて使用するので、私が行うすべてのことについて多くの助けが必要です。ご協力いただきありがとうございます。

私はすでにこれを持っています:package sherdle.donald.duck.app; import android.app.Activity; android.os.Bundleをインポートします。import android.view.Window; android.webkit.WebChromeClientをインポートします。android.webkit.WebViewをインポートします; android.webkit.WebViewClientをインポートします; パブリッククラスWebPageLoaderはActivity{WebViewwebview;を拡張します。

final Activity activity = this;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setSupportMultipleWindows(true);
webview.getSettings().setPluginsEnabled(true);

 webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)
    {
        activity.setTitle("Loading...");
        activity.setProgress(progress * 100);

        if(progress == 100)
            activity.setTitle(R.string.app_name);
    }
 });



 webview.setWebViewClient(new WebViewClient() {


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

    }
 });

 webview.setWebChromeClient(new WebChromeClient(){
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       if (url != null && url.startsWith("http://")) {
           view.getContext().startActivity(
               new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
           return true;
       } else {
           return false;
       }
   }

  webview.loadUrl("http://www.sherdle.com/apphosting/dd");
  }



 @Override
 public void onBackPressed (){
    if(webview.canGoBack()) webview.goBack();
    else super.onBackPressed();
 }
 }

しかし、LoadUrl行でこのエラーが発生します:この行に複数のマーカー-構文エラー、「AssignmentOperator式」を挿入して式を完了します-構文エラー、「;」を挿入します FieldDeclarationを完了するには-構文エラー、MethodInvocationを完了するには「)」を挿入します-構文エラー、ClassBodyを完了するには「}」を挿入します-構文エラー、「;」を挿入します ステートメントを完了するには-トークンの構文エラー、誤って配置された構成

4

3 に答える 3

1

このように使用する

    @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webview.getSettings().setSupportMultipleWindows(true);
webview.getSettings().setPluginsEnabled(true);

 webview.setWebChromeClient(new WebChromeClient() {
    public void onProgressChanged(WebView view, int progress)
    {
        activity.setTitle("Loading...");
        activity.setProgress(progress * 100);

        if(progress == 100)
            activity.setTitle(R.string.app_name);
    }
 });



 webview.setWebViewClient(new WebViewClient() {


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

    }
 });

 webview.setWebChromeClient(new WebChromeClient(){
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
       if (url != null && url.startsWith("http://")) {
           view.getContext().startActivity(
               new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
           return true;
       } else {
           return false;
       }
   }


  });

webview.loadUrl("http://www.sherdle.com/apphosting/dd");


 }

 @Override
 public void onBackPressed (){
    if(webview.canGoBack()) webview.goBack();
    else super.onBackPressed();
 }
于 2012-07-15T19:23:52.167 に答える
0

まず、レイアウトにWebビューがあることを確認してください。また、マニフェストに次の行があることを確認してください。

<uses-permission android:name="android.permission.INTERNET" />

次に、それをonCreateに追加します。最高ではないかもしれませんが、それで十分です。

于 2012-07-15T18:53:37.863 に答える
0

申し訳ありませんが、まったく同じメソッドがすでにオーバーライドされている場合、そのコードをどこに挿入するかを理解できないのはなぜですか?それが言うところを見てください:

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

上記の動作を変更する場合は、最初のコードスニペットで指定されているこれらの2行を置き換えるだけです。

また、2回設定しようとしているため、匿名の内部クラスを実際には理解していないように感じますWebChromeClient。これは実際には意味がありません。私はあなたがその問題についていくらか読むことを提案します。

また、shouldOverrideUrlLoading(...)メソッドは、WebViewClientではなく、によって定義されWebChromeClientます。これは、単にドキュメントを参照する場合です。

于 2012-07-15T19:28:24.990 に答える