如何在Android中的onResponse之外使用变量?

我创建了一个活动,在其中将一些记录插入到mysql数据库中。我声明了一个名为的全局变量lastInsertId。当我尝试方法println内部的变量时onResponse,工作正常,但是当我尝试println方法外部时,返回null。我还需要在方法之外使用此变量。该怎么办?这是我的代码:

String insertUrl = "http://localhost/file.php";

String lastInsertId;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());

StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {

@Override

public void onResponse(String response) {

lastInsertId = response.toString();

System.out.println(lastInsertId); // returns the lastInsertId

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

}

}) {

@Override

protected Map<String, String> getParams() throws AuthFailureError {

Map<String, String> parameters = new HashMap<String, String>();

// parameters

return parameters;

}

};

requestQueue.add(request);

System.out.println(lastInsertId); // get's null

}

谢谢!

回答:

我知道了。大约一年后,我回答了这个问题,因为我看到这个帖子有几百位访客。希望我的回答将帮助其他功能访问者从onResponse方法获取数据。这是代码:

String insertUrl = "http://localhost/file.php";

String lastInsertId;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());

StringRequest request = new StringRequest(Request.Method.POST, insertUrl, new Response.Listener<String>() {

@Override

public void onResponse(String response) {

lastInsertId = response.toString();

System.out.println(lastInsertId); // returns the lastInsertId

callback.onSuccess(lastInsertId);

}

}, new Response.ErrorListener() {

@Override

public void onErrorResponse(VolleyError error) {

}

}) {

@Override

protected Map<String, String> getParams() throws AuthFailureError {

Map<String, String> parameters = new HashMap<String, String>();

// parameters

return parameters;

}

};

requestQueue.add(request);

}

public interface VolleyCallback{

void onSuccess(ArrayList<Data> dataArrayList);

}

这是我们在Activity中需要的代码。

public void onResume(){

super.onResume();

getString(new VolleyCallback(){

@Override

public void onSuccess(String result){

System.out.println(result); // returns the value of lastInsertId

}

});

}

以上是 如何在Android中的onResponse之外使用变量? 的全部内容, 来源链接: utcz.com/qa/412110.html

回到顶部