1

次のコードを使用してWebブラウザでURLを開こうとしています。

動作しません

Bundle ex=in.getExtras();
link=ex.getString("link");
public void onClick(View arg0) {
    Intent t=new Intent(Intent.ACTION_VIEW);
    Uri u=Uri.parse(link);
    t.setData(u);
    startActivity(t);   
}

しかし、私は奇妙な問題を抱えています。文字列「リンク」の代わりに正確なURLを使用すると、すべてが正常に機能しますが、作成した文字列リンクを使用すると、「インテントを処理するアクティビティが見つかりません」という例外が発生します。 。しかし、リンクには以前使用したものと同じ正しいURLが含まれていると確信しています。

これは動作します

 public void onClick(View arg0) {
    Intent t=new Intent(Intent.ACTION_VIEW);
    Uri u=Uri.parse("http://google.com");
    t.setData(u);
    startActivity(t);   
}

最初のケースでは、チェックするためにテキストビューに印刷したほかに、リンクにURL(http://google.com)が含まれていると確信しています。

4

2 に答える 2

1

さて、問題は「リンク」の空白が原因でした。link.trim() を使用したところ、正しく機能しました。助けてくれてありがとう。

于 2013-01-15T15:03:52.943 に答える
0

これは、Intent.ACTION_VIEWで渡すデータによって動作が異なるためですsetData。したがって、Uri/URL を渡すとブラウザーが開きますが、文字列を渡すと (文字列に実際に URL が含まれているかどうかは問題ではありません)、それをどう処理するかわかりません。

コードからリンクを作成する必要がある場合は、Uri.withAppendedPathを使用できます。

于 2012-12-22T16:12:17.707 に答える