2012-04-13 4 views
0

私はこのクラスをwebviewclientとして持つwebviewを持っています。これは、webviewで開いたページへのリンクを作成し、ダウンロード可能なファイルへのリンクをデフォルトのブラウザで開きます。 ここにある:クラスのエラー

class LinkWebView extends WebViewClient { 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if (url.contains("/WS/") | url.contains("/Francesco/") 
      | url.contains("/Gabriele/")) { 
     try { 
      Intent intent = new Intent(Intent.ACTION_VIEW); 
      intent.setData(Uri.parse(url)); 
      ClubCiprianisActivity cca = new ClubCiprianisActivity(); 
      cca.comincia(intent); 
     } catch (Exception ex) { 
      ClubCiprianisActivity cca = new ClubCiprianisActivity(); 
      cca.tostizza(ex.getMessage()); 
     } 
    } else { 
     view.loadUrl(url); 
    } 
    return true; 
} 

}

WebViewの中またはデフォルトのブラウザでリンクを開くことwheter選択する条件は、そのウェブサイトのために正しいですので、このWebViewのは、特定のウェブサイトからのみのURLをロードします。

ClubCiprianisActivityは、私のアプリケーションに表示されている唯一のアクティビティです.Webviewなどすべてのアクティビティが表示されます。 ClubCiprianisActivityの

メソッドcominciaはこれです:

public void comincia(Intent intent) { 
    startActivity(intent); 
} 

EclipseはwebviewclientクラスのメソッドのstartActivityを認識しないので、私はそれをしなければなりませんでした。 tostizzaはwebviewclientクラスのどちらでもできないので、Toastを表示しているだけです。私の問題は、ウェブページへのリンクを開くと、普通に開きますが、ダウンロード可能なリンクを開こうとすると、shouldoverrideに行きます...エラーが発生します。

答えて

2

あなたは(意図)

+0

Ehm ...これを行う方法も教えてください。私はちょうどそれを得ていないと思う。 – Cippo

1
context.startActivity(intent); 

または

YourActivityname.this.startActivity(intent); 
context.startActivityをLinkWebViewクラスのコンストラクタを作成してから呼び出し、このコンストラクタにパラメータとしてコンテキストを送信manually..insteadあなたの活動を開始することはありません
+0

実際には動作しません... Eclipseは "範囲内でアクセス可能なClubCiprianisActivityタイプの囲みインスタンスはありません"と述べています。 – Cippo

+0

あなたは上記のコメントについて私に尋ねる前に何を試してきましたか.... Google検索ボックスに行を置く....いくつかの努力をしてください.... –

+0

Eclipseを使っていない限り、私はちょっと問題を解決しました。 sdkのアップデートが完了したら、試してみます。 – Cippo

1

コンテンツをインポートすると同じ問題が発生しました。いいクラスをお勧めします。