0

I'm trying to grab JSON data from google by using asynctask. But i get a lot of errors I don't know why. I'm new to android development, I was interested in it then quit now back again :P.

and on the button click which executes the asynctask

                        new usdjson().execute();

this is my Asynctask

    private class usdjson extends AsyncTask<URL, Void, JSONObject> {

        @Override
        protected Boolean doInBackground(URL... urls) {
// I get this from Boolean : The return type is incompatible with AsyncTask<URL,Void,JSONObject>.doInBackground(URL[])
            URL url = new URL(requestUrl);
            loadJSON(url);
        }

        @Override
        protected void onPostExecute(JSONObject jsonData) {
            try {
               String USD = json.getJSONArray("rhs");
//I get this from json. :json cannot be resolved
        }
    }


    public void loadJSON(URL url) {
        JSONParser jParser = new JSONParser();
//I get this from JSONPareser JSONParser cannot be resolved to a type
        JSONObject json = jParser.getJSONFromUrl(url);
        return json;
//Void methods cannot return a value
    }

sorry for being long

4

1 に答える 1

1

それ以外の

URL requestUrl = "http://www.google.com/ig/calculator?hl=en&q=1USD=?GBP";

あなたが持っている必要があります

URL requestUrl = new URL("http://www.google.com/ig/calculator?hl=en&q=1USD=?GBP");

編集

まず、戻り値の型doInBackground()を JSONObject に変更します。

protected JSONObject doInBackground(URL... urls) {

urlsは配列であるため、その中の URL にアクセスするには、位置を指定する必要があります。

URL url = new URL(urls[0]);    // urls[0] is the URL you passed when calling the .execute method

で JSONObject を処理したいonPostExecute()ので、 の戻り値を変更する必要があります doInBackground

JSONObject json = loadJSON(url);
return json;

しかし、残りの部分については、コードをコピーして貼り付けただけのようで、多くのコードが欠落しているように見えるため、これ以上手助けするのは難しいです...必要なloadJSON処理を行うように変更する必要があります ( Url からのデータを処理し、JSON オブジェクトを返します)。実際、数分前に投稿した他の StackOverflow の質問に入力したコードをコピーしてください...

于 2013-08-30T17:28:02.260 に答える