0

I am trying to do http requests using the volley service, and i found a really usefull answer here about how to organize the service for diferent http requests, so you don't need to do all that code for every request.

The request works fine and i got the result i want, but it never enters de callback on the mainActivity.

So this never gets executed:

void initVolleyCallback(){
        mResultCallback = new IResult() {
            @Override
            public void notifySuccess(String requestType,JSONObject response) {
                Log.d("GJ","success");
            }

            @Override
            public void notifyError(String requestType,VolleyError error) {
                Log.d(TAG, "Volley requester " + requestType);
                Log.d(TAG, "Volley JSON post" + "That didn't work!");
            }
        };
    }

Here is my main activity:

public class Register extends AppCompatActivity {

    EditText usernameTxt;
    EditText passwordTxt;
    EditText emailTxt;
    RequestQueue queue;
    boolean formValid = false;
    VolleyService mVolleyService;
    IResult mResultCallback;
    static final String TAG = "request12";

    final String URL = "http://10.0.2.2:3000/register";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //hide status bar
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_register);

        initVolleyCallback();

        //inicialize queue with volley
        queue = Volley.newRequestQueue(this);

        //inicialize form fields
        usernameTxt = (EditText)findViewById(R.id.username);
        passwordTxt = (EditText)findViewById(R.id.password);
        emailTxt = (EditText)findViewById(R.id.email);

        //set text for developing stage
        usernameTxt.setText("afcosta5");
        passwordTxt.setText("moitarioavE10");
        emailTxt.setText("filipecosta_10@hotmail.com");

    }

    public void register(View view) {

        System.setProperty("http.keepAlive", "false");

        //get form data
        final String username = usernameTxt.getText().toString();
        String password = passwordTxt.getText().toString();
        String email = emailTxt.getText().toString();
        Log.d("email",String.valueOf(isValidEmail(email)));

        if (!isValidEmail(email)) {
            emailTxt.setError("Invalid Email");
        }

        //inicialize a map with pair key value
        final Map<String, String> params = new HashMap<String, String>();

        // Add form fields to the map
        params.put("username", username);
        params.put("email", email);
        params.put("password", password);

        JSONObject sendObj = new JSONObject(params);

        mVolleyService = new VolleyService(mResultCallback,this);

        mVolleyService.postDataVolley(URL,sendObj);



 void initVolleyCallback(){
        mResultCallback = new IResult() {
            @Override
            public void notifySuccess(String requestType,JSONObject response) {
                Log.d("GJ","success");
            }

            @Override
            public void notifyError(String requestType,VolleyError error) {
                Log.d(TAG, "Volley requester " + requestType);
                Log.d(TAG, "Volley JSON post" + "That didn't work!");
            }
        };
    }

I really don't know where is the issue, need some help

Community
  • 1
  • 1

1 Answers1

0

remove "initVolleyCallback()" method from "onCreate()". Implements "IResult" interface like

public class Register extends AppCompatActivity implements IResult 

then You'll have to implement override methods of IResult

@Override
public void notifySuccess(String requestType,JSONObject response) {
    Log.d("GJ","success");
}

@Override
public void notifyError(String requestType,VolleyError error) {
     Log.d(TAG, "Volley requester " + requestType);
     Log.d(TAG, "Volley JSON post" + "That didn't work!");
}