2016-01-26 1 views
0

Nouveau à volley. Question rapide. Je peux obtenir une requête simple de volée HTTP pour bien fonctionner lorsqu'il est placé dans onCréer Est-il possible de mettre la demande dans une classe séparée?android volley simple http demande

Le studio Android ne peut pas résoudre "stringRequest" dans cet exemple. Aide a beaucoup apprécié ...

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Retriever go = new Retriever(); 
     go.queue.add(stringRequest); 
    } 

public class Retriever { 


    RequestQueue queue = Volley.newRequestQueue(getApplicationContext()); 
    String url = "http://www.google.com"; 

    public StringRequest stringRequest = new StringRequest(Request.Method.GET, url, 
      new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        // mTextView.setText("Response is: " + response.substring(0, 500)); 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      // mTextView.setText("That didnt work!"); 
     } 

    }); 

} 

} 
+0

Est-ce que 'Retriever' est une classe interne de' MainActivity'? Il est difficile de dire que, avec votre indentation –

Répondre

2

Depuis votre variable stringRequest est dans le champ d'application de Retriever classe, sa visibilité est contenue dans cette classe seulement. C'est pourquoi vous obtenez cette erreur.

Il disparaîtra si vous écrivez

go.queue.add(go.stringRequest); 

que vous faites référence à l'objet de l'instance de sa classe.

+0

oui c'est tout. Bien expliqué. À votre santé. – user3338496