Java 易失性变量在onResponse方法中没有变化

Java 易失性变量在onResponse方法中没有变化,java,android,android-volley,Java,Android,Android Volley,我试图读取响应,然后在全局变量中设置它,以便在活动中使用它。请求在单独的类中。我曾尝试在活动类中设置可变的静态变量,但并没有改变 在活动中: private void posalji(String name, String jmb){ SendData sendData = new SendData(getApplicationContext(), Constants.FIRSTtimeREQUEST_URL); HashMap<String, String

我试图读取响应,然后在全局变量中设置它,以便在活动中使用它。请求在单独的类中。我曾尝试在活动类中设置可变的静态变量,但并没有改变

在活动中:

private void posalji(String name, String jmb){
        SendData sendData = new SendData(getApplicationContext(), Constants.FIRSTtimeREQUEST_URL);
        HashMap<String, String> mapa = new HashMap<>();
        mapa.put("name", name);
        mapa.put("jmb", jmb);
        mapa.put("phone", pNumber);
        mapa.put("mac_address", getMacAddress());
        sendData.setDataMap(mapa);
        sendData.sendData();

        if(sendData.isSend()) {
            //do something
        }else{
           //do something
        }
    }
private void posalji(字符串名称,字符串jmb){
SendData SendData=新的SendData(getApplicationContext(),常量.FIRSTtimeREQUEST\u URL);
HashMap mapa=新的HashMap();
mapa.put(“名称”,名称);
mapa.put(“jmb”,jmb);
mapa.put(“电话”,pNumber);
put(“mac_地址”,getMacAddress());
setDataMap(mapa);
sendData.sendData();
if(sendData.isSend()){
//做点什么
}否则{
//做点什么
}
}
类内发送数据:

public void sendData() {
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                setSend(true);
                setRetrievedData(parseHTML(response));
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                setSend(false);
            }
        }) {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<String, String>();
                Iterator it = dataMap.entrySet().iterator();
                while (it.hasNext()) {
                    Map.Entry pair = (Map.Entry) it.next();
                    params.put(pair.getKey().toString(), pair.getValue().toString());
                    it.remove();
                }
                return params;
            }
        };
        queue.add(stringRequest);
    }
public void sendData(){
StringRequest StringRequest=new StringRequest(Request.Method.POST,url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
设置结束(真);
setRetrievedData(解析HTML(响应));
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
设置结束(假);
}
}) {
@凌驾
受保护的映射getParams()引发AuthFailureError{
Map params=新的HashMap();
迭代器it=dataMap.entrySet().Iterator();
while(it.hasNext()){
Map.Entry对=(Map.Entry)it.next();
参数put(pair.getKey().toString(),pair.getValue().toString());
it.remove();
}
返回参数;
}
};
添加(stringRequest);
}
我需要更改
布尔值
,以便能够在活动中读取它。
对不起,如果这个问题很琐碎的话。我是Java新手。

在SendData类中声明一个静态变量,并使用它存储SendData方法的结果:

private static boolean resultOk;
将sendData的返回类型更改为boolean,并更改
setSend(true)
resultOk=true

在方法的末尾:
返回resultOk


在活动中,只要直接调用方法
if(SendData.SendData()){}
在类SendData中声明一个静态变量并使用它存储SendData方法的结果:

private static boolean resultOk;
将sendData的返回类型更改为boolean,并更改
setSend(true)
resultOk=true

在方法的末尾:
返回resultOk


在活动中,如果(SendData.SendData()){}

不幸的是它没有工作,因为某些原因值没有改变,幸运的是它没有工作,因为某些原因值没有改变