如何通过凌空的onResponse()

时间:2019-09-01 01:05:24

标签: android android-volley mpandroidchart

请参见BarChartPosNegActivity.data_str=jsonArray.toString();
我通过PHP文件和volley从Web DB获取数据
然后将数据存储到BarChartPosNegActivity.data_str静态变量

运行代码时,首先,BarChartPosNegActivity.data_str由于初始化了变量static String data_str="aa";会打印“ aa”

然后按“后退”按钮并重新输入当前活动(使用MPAndroidChart的barchart屏幕)后,BarChartPosNegActivity.data_str打印表的数据

如何将表的数据直接存储到BarChartPosNegActivity.data_str中而不需要“返回后屏幕并重新进入屏幕”?

public class BarChartPosNegActivity extends AppCompatActivity
{
    // ================================================================================
    ...

    // Create static variable
    static String data_str="aa";

    // ================================================================================
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {

        // ================================================================================
        super.onCreate(savedInstanceState);

        // ================================================================================
        setContentView(R.layout.activity_bar_chart_pos_neg);

        // ================================================================================
        ... 

        get_refDB_up_down_numerical_table();
        System.out.println(BarChartPosNegActivity.data_str);

        // ================================================================================
        // Create BarDataSet1 object
        BarDataSet barDataSet1=new BarDataSet(dataValues1(),"DataSet 1");

        ...

    }

    // ================================================================================
    void get_refDB_up_down_numerical_table()
    {
        Response.Listener<String> responseListener = new Response.Listener<String>()
        {
            @Override
            public void onResponse(String response)
            {
                try
                {
                    JSONArray jsonArray=new JSONArray(response);
                    BarChartPosNegActivity.data_str=jsonArray.toString();
                }
                catch (JSONException e)
                {
                    e.printStackTrace();
                }
            }
        };

        RefDBNumericRequest loginRequest = new RefDBNumericRequest(responseListener);
        RequestQueue queue = Volley.newRequestQueue(BarChartPosNegActivity.this);
        queue.add(loginRequest);
    }
}

1 个答案:

答案 0 :(得分:0)

移动此代码:

System.out.println(BarChartPosNegActivity.data_str);

// ================================================================================
// Create BarDataSet1 object
BarDataSet barDataSet1=new BarDataSet(dataValues1(),"DataSet 1");
...

进入onResponse处理程序。当您从HTTP调用获取响应时,将调用此函数。