为什么我的JsonObjectRequest不工作​​? [英] Why is my JsonObjectRequest not working?

查看:262
本文介绍了为什么我的JsonObjectRequest不工作​​?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在摆弄这几天了。无法得到它的权利。 Android的工作室会不会让我这个错误编译。所以,我有这样的应用程序,其中我有两个标签和两个片段。一片段被称为新的,并且该片段获取JSON。但我无法得到正确的做到这一点。我已经上传了怎样的错误是这样,类文件的图片。你能帮帮我吗?

错误:无法解析构造JsonObjectRequest(INT,java.lang.String中,空......)

new_fragment.java

 公共类new_fragment扩展片段{
    私有静态最后弦乐ARG_PARAM1 =参数1;
    私有静态最后弦乐ARG_PARAM2 =参数2;

    私人字符串mParam1;
    私人字符串mParam2;
    私人VolleySingleton volleySingleton;
    私人ImageLoader的ImageLoader的;
    私人请求队列请求队列;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        如果(getArguments()!= NULL){
            mParam1 = getArguments()的getString(ARG_PARAM1)。
            mParam2 = getArguments()的getString(ARG_PARAM2)。
        }
        volleySingleton = VolleySingleton.getsInstance();
        请求队列= volleySingleton.getRequestQueue();
        请求队列请求队列= VolleySingleton.getsInstance()getRequestQueue()。
        JsonObjectRequest请求=新JsonObjectRequest(Request.Method.GET,http://10.0.8.152/json/new.json,空,
                新Response.Listener<的JSONObject>(){
                    @覆盖
                    公共无效onResponse(JSONObject的响应){
                        的System.out.println(响应);
                    }
                },
                新Response.ErrorListener(){
                    @覆盖
                    公共无效onErrorResponse(VolleyError错误){

                    }
                });
        requestQueue.add(要求);
    }

    公共查看onCreateView(LayoutInflater充气,@Nullable的ViewGroup容器,@Nullable捆绑savedIntanceState){
        setHasOptionsMenu(真正的);
        查看布局= inflater.inflate(R.layout.new_fragment,集装箱,假);
        返回布局;
    }

    @覆盖
    公共无效onCreateOptionsMenu(功能菜单,MenuInflater充气){
        // TODO自动生成方法存根
        super.onCreateOptionsMenu(菜单,充气);
        inflater.inflate(R.menu.ref_menu,菜单);
    }

    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        //处理项目选择
        开关(item.getItemId()){
            案例R.id.refreshico:
                //做s.th.
                返回true;
            默认:
                返回super.onOptionsItemSelected(项目);
        }
    }

}
 

VolleySingleton

 公共类VolleySingleton {
    私有静态VolleySingleton sInstance = NULL;
    私人ImageLoader的mImageLoader;
    私人请求队列mRequestQueue;
    私人VolleySingleton(){
        mRequestQueue = Volley.newRequestQueue(appClass.getAppContext());
        mImageLoader =新ImageLoader的(mRequestQueue,新ImageLoader.ImageCache(){
            私人LruCache<字符串,位图>缓存=新LruCache<>((INT)(调用Runtime.getRuntime()maxMemory()/ 1024)/ 8);

            @覆盖
            公共位图getBitmap(字符串URL){
                返回cache.get(URL);
            }

            @覆盖
            公共无效putBitmap(字符串URL,位图位图){
                cache.put(URL,位图);
            }
        });
    }

    公共静态VolleySingleton getsInstance(){
        如果(sInstance == NULL){
            sInstance =新VolleySingleton();
        }
        返回sInstance;
    }

    公共请求队列getRequestQueue(){
        返回mRequestQueue;
    }
    公共ImageLoader的getImageLoader(){
        返回mImageLoader;
    }


}
 

解决方案

投(字符串)空。

  JsonObjectRequest请求=新JsonObjectRequest(Request.Method.GET,http://10.0.8.152/json/new.json(字符串)空,
                新Response.Listener<的JSONObject>(){
                    @覆盖
                    公共无效onResponse(JSONObject的响应){
                        的System.out.println(响应);
                    }
                },
                新Response.ErrorListener(){
                    @覆盖
                    公共无效onErrorResponse(VolleyError错误){

                    }
                });
 

I have been fiddling with this for a few days now. Couldn't get it right. Android studio won't let me compile it with this error. So, I have this application where I have two tabs and two fragments. One fragment is called new, and that fragment fetches json. But I couldn't get to do it properly. I have uploaded a picture of how the error looks like, and the class files. Can you please help me out?

Error: "Cannot resolve constructor JsonObjectRequest(int, java.lang.String, null.......)

new_fragment.java

public class new_fragment extends Fragment {
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    private String mParam1;
    private String mParam2;
    private VolleySingleton volleySingleton;
    private ImageLoader imageLoader;
    private RequestQueue requestQueue;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() !=null){
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
        volleySingleton = VolleySingleton.getsInstance();
        requestQueue = volleySingleton.getRequestQueue();
        RequestQueue requestQueue = VolleySingleton.getsInstance().getRequestQueue();
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,"http://10.0.8.152/json/new.json",null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        System.out.println(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });
        requestQueue.add(request);
    }

    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedIntanceState) {
        setHasOptionsMenu(true);
        View layout = inflater.inflate(R.layout.new_fragment, container, false);
        return layout;
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.ref_menu, menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle item selection
        switch (item.getItemId()) {
            case R.id.refreshico:
                // do s.th.
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

}

VolleySingleton

public class VolleySingleton {
    private static VolleySingleton sInstance = null;
    private ImageLoader mImageLoader;
    private RequestQueue mRequestQueue;
    private VolleySingleton(){
        mRequestQueue = Volley.newRequestQueue(appClass.getAppContext());
        mImageLoader = new ImageLoader(mRequestQueue,new ImageLoader.ImageCache() {
            private LruCache<String, Bitmap> cache = new LruCache<>((int)(Runtime.getRuntime().maxMemory()/1024)/8);

            @Override
            public Bitmap getBitmap(String url) {
                return cache.get(url);
            }

            @Override
            public void putBitmap(String url, Bitmap bitmap) {
                cache.put(url, bitmap);
            }
        });
    }

    public static VolleySingleton getsInstance(){
        if(sInstance==null){
            sInstance = new VolleySingleton();
        }
        return sInstance;
    }

    public RequestQueue getRequestQueue(){
        return mRequestQueue;
    }
    public ImageLoader getImageLoader(){
        return mImageLoader;
    }


}

解决方案

cast (String)null.

JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET,"http://10.0.8.152/json/new.json",(String)null,
                new Response.Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject response) {
                        System.out.println(response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                });

这篇关于为什么我的JsonObjectRequest不工作​​?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆