如何解决如何使用Volley从API显示图表
我最近一直在开发一个应用程序,该应用程序需要显示从API作为JSON数据从API检索到的员工的统计信息以显示为图表,我正在与MP Android Chart和Volley一起获取和显示数据
我一直在尝试我能找到的所有方法,但似乎无法正常工作,它会导致应用程序崩溃或不显示任何数据。
我的问题:这里的方法有什么问题?
public static String SalesURL = "http://-------------------------";
public static final String Key_SalespersonID = "id";
public static final String Key_Year = "year";
private String id;
private String year;
private RequestQueue queue;
private BarChart chart;
BarData data;
BarEntry values;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sp_main);
chart = findViewById(R.id.chart);
XAxis xAxis = chart.getXAxis();
xAxis.setPosition(XAxis.XAxisPosition.BottOM);
xAxis.setGranularity(1f);
xAxis.setGranularityEnabled(true);
YAxis rightAxis = chart.getAxisRight();
rightAxis.setEnabled(false);
queue = Volley.newRequestQueue(this);
DateFormat dateFormat = new SimpleDateFormat("yyyy");
Date date = new Date();
year = dateFormat.format(date);
salesid = "1";
load_data_from_server();
}
从服务器加载数据
private void load_data_from_server(){
Description description = new Description();
description.setText("Sales");
StringRequest request = new StringRequest(Request.Method.POST,SalesURL,new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
for(int i=0;i<jsonArray.length();i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
String Month = jsonObject.getString("Month").trim();
String InvoiceAmount = jsonObject.getString("Sales").trim();
ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(Float.parseFloat(InvoiceAmount),0));
ArrayList<String> labels = new ArrayList<String>();
labels.add(Month.substring(0,3));
BarDataSet barDataSet = new BarDataSet(entries,"Sales");
barDataSet.setColor(Color.rgb(0,82,159));
data = new BarData((IBarDataSet) labels,barDataSet);
chart.setDescription(description);
chart.animateXY(2000,2000);
chart.setData(data);
chart.notifyDataSetChanged();
chart.invalidate();
}
} catch (Exception e) {
Toast.makeText(SP_MainActivity.this,e.getMessage(),Toast.LENGTH_LONG).show();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if(error != null){
Toast.makeText(getApplicationContext(),error.toString(),Toast.LENGTH_SHORT);
}
}
}){
@Override
protected Map<String,String> getParams() throws AuthFailureError {
Map<String,String> map = new HashMap<String,String>();
map.put(Key_SalespersonID,id);
map.put(Key_Year,year);
return map;
}
};
queue.add(request);
}
我的Json数据
[
{
"Month":"January","Salesperson":1,"Sales":"608.00"
},{
"Month":"February","Sales":"109.20"
},{
"Month":"march","Sales":"509.10"
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。