2017-05-20 7 views
0

私はvolleyサービスを使用してHTTPリクエストを実行しようとしていますが、便利な答えはhereであり、すべての操作を行う必要はありませんすべての要求に対応するコード。Volleyサービスはコールバックを入力しません

リクエストはうまく動作していますが、私が望む結果が得られましたが、mainActivityではコールバックを入力することはありません。

はこれが実行されることは決してありません:

ここ
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!"); 
      } 
     }; 
    } 

である私の主な活動:

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("[email protected]"); 

    } 

    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!"); 
      } 
     }; 
    } 

私は本当に問題であり、知っているいくつかの助け

答えて

0

を必要としません。 "onCreate()"から "initVolleyCallback()"メソッドを削除してください。

public class Register extends AppCompatActivity implements IResult 

のような "IResult" インタフェースを実装し、その後あなたは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!"); 
} 
のオーバーライドメソッドを実装する必要があります
関連する問題