2015-04-03 25 views
0

我有這個類在那裏我的讀取與POST方法JSON數組指幾個谷歌搜索和計算器的問題後jsonarray post請求,但我的代碼給出了一個奇怪的錯誤Cannot Resolve SymbolPOST排球 - 使

這裏是我的活動

public class fbuk extends Activity { 

    // Movies json url 
    private static final String url = "http://example.com/xyz.php"; 
    private ProgressDialog pDialog; 
    private List<Movie> movieList = new ArrayList<Movie>(); 
    private ListView listView; 
    private CustomListAdapter adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.listview_main); 

     listView = (ListView) findViewById(R.id.listview); 
     adapter = new CustomListAdapter(this, movieList); 
     listView.setAdapter(adapter); 

     pDialog = new ProgressDialog(this); 
     // Showing progress dialog before making http request 
     pDialog.setMessage("Loading..."); 
     pDialog.show(); 

     // changing action bar color 

     // Creating volley request obj 
     JsonArrayRequest movieReq = new PostJsonArrayRequest(Method.POST, url, null, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        Log.d(TAG, response.toString()); 
        hidePDialog(); 

        // Parsing json 
        for (int i = 0; i < response.length(); i++) { 
         try { 

          JSONObject obj = response.getJSONObject(i); 
          Movie movie = new Movie(); 
          movie.setTitle(obj.getString("ttl")); 
          movie.setThumbnailUrl(obj.getString("img")); 
          movie.setRating(obj.getString("stts")); 
          movie.setYear(obj.getString("rel")); 

          movieList.add(movie); 

         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 

        } 

        // notifying list adapter about data changes 
        // so that it renders the list view with updated data 
        adapter.notifyDataSetChanged(); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        VolleyLog.d(TAG, "Error: " + error.getMessage()); 
        hidePDialog(); 
       } 
      }); 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(movieReq); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     hidePDialog(); 
    } 

    private void hidePDialog() { 
     if (pDialog != null) { 
      pDialog.dismiss(); 
      pDialog = null; 
     } 
    } 
} 


public class PostJsonArrayRequest extends JsonRequest<JSONArray> { 

    /** 
    * Creates a new request. 
    * @param url URL to fetch the JSON from 
    * @param listener Listener to receive the JSON response 
    * @param errorListener Error listener, or null to ignore errors. 
    */ 
    public PostJsonArrayRequest(String url, Response.Listener<JSONArray> listener, Response.ErrorListener errorListener) { 
     super(Method.POST, url, null, listener, errorListener); 
    } 

    @Override 
    protected Map<String, String> getParams() throws AuthFailureError { 
     HashMap<String, String> params = new HashMap<String, String>(); 
     params.put("q", "ram"); 
     return params; 
    } 

    @Override 
    protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) { 
     try { 
      String jsonString = 
        new String(response.data, HttpHeaderParser.parseCharset(response.headers)); 
      return Response.success(new JSONArray(jsonString), 
        HttpHeaderParser.parseCacheHeaders(response)); 
     } catch (UnsupportedEncodingException e) { 
      return Response.error(new ParseError(e)); 
     } catch (JSONException je) { 
      return Response.error(new ParseError(je)); 
     } 
    } 
} 

我下面從androidhive

的教程請建議我在哪裏做的錯誤

+0

試試這個,使用(Request.Method.POST,網址,新Response.Listener (){} .....檢查 – 2015-04-03 05:14:05

+0

你的'Method'進口。它應該是'進口玉米.android.volley.Request.Method' – Piyush 2015-04-03 05:15:28

+0

得到不兼容的類型錯誤 – user3225075 2015-04-03 05:20:24

回答

0

檢查您的進口Method。它應該是

import com.android.volley.Request.Method 

可能是你導入爲

import java.lang.reflect.Method; 
+0

錯誤:(90,37)錯誤:類fbuk.PostJsonArrayRequest中的構造函數PostJsonArrayRequest無法應用於給定的類型; 要求:字符串,監聽,ErrorListener 發現:整數,字符串,<匿名監聽>,<匿名ErrorListener> 原因:實際的和正式的參數列表的長度不同 – user3225075 2015-04-03 05:45:30

+0

你應該用'JsonArrayRequest'擴展你'PostJSONArrayRequest'類而不是'JsonRequest ' – Piyush 2015-04-03 05:47:27

+0

現在我得到錯誤附近超(Method.POST,網址,空,偵聽器,errorListener);無法解決錯誤 – user3225075 2015-04-03 05:50:34

0

使用

JsonArrayRequest movieReq = new PostJsonArrayRequest(Request.Method.POST,url, 
     new Response.Listener<JSONArray>() { 

,並確保導入,

import com.android.volley.Request.Method; 

希望它會工作。

1

我做這樣的(見示例代碼),請確保import com.android.volley.Request;必須在活動類進口否則Request.Method.POST將無法​​正常工作和無法解析將出現

String url = "http://example.com/xyz.php"; 

    ErrorListener errorListener = new ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError errorResponce) 
     { 

     } 
    }; 

    Listener<JSONArray > jsonArrayListener = new Listener<JSONArray>() 
    { 
     @Override 
     public void onResponse(JSONArray response) { 
      // TODO Auto-generated method stub 

     } 
    }; 


    PostJsonArrayRequest req = new PostJsonArrayRequest(Request.Method.POST, url , null, jsonArrayListener, errorListener); 

而且使用這個類對於

public class PostJsonArrayRequest extends JsonRequest<JSONArray> 
{ 

    public PostJsonArrayRequest(int method, String url, String requestBody, 
      Listener<JSONArray> listener, ErrorListener errorListener) 
    { 
     super(method, url, requestBody, listener, errorListener); 
    } 

    @Override 
    protected Response<JSONArray> parseNetworkResponse(NetworkResponse response) 
    { 
     try { 
      String jsonString = 
        new String(response.data, HttpHeaderParser.parseCharset(response.headers)); 
      return Response.success(new JSONArray(jsonString), 
        HttpHeaderParser.parseCacheHeaders(response)); 
     } catch (UnsupportedEncodingException e) { 
      return Response.error(new ParseError(e)); 
     } catch (JSONException je) { 
      return Response.error(new ParseError(je)); 
     } 
    } 

} 
+0

錯誤:(90,37)錯誤:構造函數中的PostBsonArrayRequest類fbuk.PostJsonArrayRequest不能應用於給定的類型; 要求:字符串,監聽,ErrorListener 發現:整數,字符串,<匿名監聽>,<匿名ErrorListener> 原因:實際的和正式的參數列表的不同之處長度 – user3225075 2015-04-03 05:48:19

+0

我已經編輯了答案,並添加PostJsonArrayRequest類以及現在希望檢查它會起作用。 – kashif181 2015-04-03 06:40:45

+0

你的回答讓我感到一半,但無法發送參數。怎麼做? – user3225075 2015-04-03 22:02:18