23

ここでandroid.net.UriをJava.net.URIに変換する方法を見つけることができますが、その逆はできません。

それで、しばらく時間をかけて、私はそれを理解しました。これが解決策です(別の解決策がある場合は、それも投稿してください)

最初に javaURI を文字列に変換してから、android.net.Uri の parse 関数を使用します

android.net.URI androidUri = android.net.Uri.parse(javaURI.toString());
4

3 に答える 3

32

http://developer.android.com/reference/android/net/Uri.html#parse(java.lang.String)

public static Uri parse (String uriString)

指定されたエンコードされた URI 文字列を解析する Uri を作成します。

パラメータ
uriString: RFC 2396 準拠のエンコードされた URI


この指定された uri 文字列の URI を返します

uriString
が null の場合、NullPointerException をスローします。


したがって、ここに例を示します。

android.net.Uri.parse(new java.net.URI("").toString());

言うまでもなく、本物を使用 java.net.URI してください... ;)

于 2014-03-11T13:26:23.957 に答える
4

これに遭遇した人にとっては、次のコードで成功しました:

URI oldUri;
Uri newUri  = new Uri.Builder().scheme(oldUri.getScheme())
                    .encodedAuthority(oldUri.getRawAuthority())
                    .encodedPath(oldUri.getRawPath())
                    .query(oldUri.getRawQuery())
                    .fragment(oldUri.getRawFragment())
                    .build();

基本的に、各 URI コンポーネントを取得してビルダーに渡します (URI 文字列全体を渡す方法はないようです。

于 2013-06-27T19:48:00.903 に答える