0

Google プレイスへのクエリを準備する別の方法を作成しました。

public URL getPlacesUrl (String stringLocation){

        try{
        String url = Uri.parse(PLACES_REQUEST_URL).buildUpon().
                appendQueryParameter("key", API_KEY).
                appendQueryParameter("radius", Integer.toString(SEARCH_RADIUS)).
                appendQueryParameter("location", stringLocation).
                appendQueryParameter("sensor", "true").build().toString();

        URL parsedURL = new URL(url);
        return parsedURL;

        } catch (MalformedURLException e){
            Log.e(TAG , "Malformed URLException caught : " + e);
        }

    }

「このメソッドは URL の結果タイプを返す必要があります」というエラーが表示されます。これは URL を返さない例外ブロックの結果であることを理解しているので、空の URL を返そうとしました:

URL emptyURL = new URL ("");
return emptyURL;

しかし、「unhanded MalformedURLException」のコンパイラ エラーが発生します。

何か案は?

4

1 に答える 1

0

それはあなたのtry/catchブロック内になかったので、あなたはそれを得ていました。ただし、空の文字列を解析しようとしない方がよいでしょう。これを試して:

public URL getPlacesUrl (String stringLocation){
    URL parsedURL = null;
    try {
        String url = Uri.parse(PLACES_REQUEST_URL).buildUpon().
            appendQueryParameter("key", API_KEY).
            appendQueryParameter("radius", Integer.toString(SEARCH_RADIUS)).
            appendQueryParameter("location", stringLocation).
            appendQueryParameter("sensor", "true").build().toString();

        parsedURL = new URL(url);

    } catch (MalformedURLException e){
        Log.e(TAG , "Malformed URLException caught : " + e);
    }
    return parsedURL;
}

URLthrowsのコンストラクタMalformedURLExceptionここを参照してください。

于 2013-06-09T07:18:01.770 に答える