java - 如何在 Android Volley 中创建一个新的 newRequestQueue

标签 java android http httprequest android-volley

我有一个 fragment ,我在其中尝试使用 Volley API 实例化一个新的 newRequestQueue

我尝试像这样实例化它:

RequestQueue queue = Volley.newRequestQueue(this);

但是,当我尝试创建请求时,出现以下错误:

newRequestQueue In Volley cannot be applied to annonymous android.view.View.OnClickListener

这是我的 fragment 类:

public class LoginFragment extends Fragment {
    private FacebookLogin fLogin;
    private Profile profile;
    private CallbackManager mCallbackManager; //Used in activity result below. Gets a value when u hit the button
    private static final String TAG = "Event";
    private static String url_create_user = "127.0.0.1/create_row.php";


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        fLogin = new FacebookLogin(getActivity().getApplicationContext());
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v =  inflater.inflate(R.layout.login, container, false);
        return v;
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState)
    {
        super.onViewCreated(view, savedInstanceState);

        final LoginButton loginButton = (LoginButton) getView().findViewById(R.id.login_button);
        final TextView infoText = (TextView) getView().findViewById(R.id.text_details);
        final ImageView profilP = (ImageView) getView().findViewById(R.id.profilePicture);

        loginButton.setFragment(this);


        loginButton.setReadPermissions("user_friends");

        loginButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Log.i(TAG, " Button clickde");
                fLogin.setCallback(loginButton); //Let's register a callback

                RequestQueue queue = Volley.newRequestQueue(this);

                fLogin.setFacebookListener(new FacebookLogin.OnFacebookListener() {
                    @Override
                    public void onFacebookLoggedIn(JSONObject parameters) {
                        Log.i(TAG, "INNNNNNNNNNNE");
                        Log.i(TAG, parameters.toString());
                    }
                });
            }
        });

    }

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        mCallbackManager = fLogin.getCallbackManager(); //Get the callbackmanager
        mCallbackManager.onActivityResult(requestCode, resultCode, data);
    }

}

最佳答案

newRequestQueue 的参数是一个Context对象。在您的情况下,this 指的是 View.OnClickListener 匿名内部类,您在其中调用 newRequestQueue。变化

Volley.newRequestQueue(this);

 Volley.newRequestQueue(getActivity().getApplicationContext());

当然是 getActivity(),因为您正在子类化 Fragment

关于java - 如何在 Android Volley 中创建一个新的 newRequestQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795970/

相关文章:

java - 无需创建数组即可获取 Class<T[]>

android - 通过终端找不到用于 OUYA 驱动程序设置的 bash adb 命令?

http - 在不修改请求状态的情况下读取 http.Request 的正文?

android - 为什么膨胀一个 Android 布局需要这么长时间?

iphone - 用希伯来语将 JSON 从 iPhone 发送到 IIS,字符串在结尾前被剪切

php - 没有在 XAMPP 中运行的基本 PHP 程序

java - 调整 TYPE_CUSTOM BufferedImages 的大小?

java - Spring启动JDBC异常

java - 使用 Java Reflection 在运行时获取字段及其值

android - 强制将 Activity 添加到历史堆栈