【发布时间】:2020-02-01 18:43:44
【问题描述】:
这是我从服务器收到的 Json 响应:
{
"OpdIpdComparison": [
{
"Year": 2019,
"Month": 1,
"MonthString": "January",
"IPD": 35,
"OPD": 3,
"Percent": "12.0"
},
{
"Year": 2019,
"Month": 2,
"MonthString": "February",
"IPD": 40,
"OPD": 0,
"Percent": "Infinity"
},
{
"Year": 2019,
"Month": 3,
"MonthString": "March",
"IPD": 53,
"OPD": 0,
"Percent": "Infinity"
},
{
"Year": 2019,
"Month": 4,
"MonthString": "April",
"IPD": 47,
"OPD": 0,
"Percent": "Infinity"
}
]
}
这是我的模型类:
公共类 OpdIpdModel {
@Json(name= "Year")
private Integer year;
@Json(name= "Month")
private Integer month;
@Json(name= "MonthString")
private String monthString;
@Json(name= "IPD")
private Integer iPD;
@Json(name= "OPD")
private Integer oPD;
@Json(name= "Percent")
private String percent;
public OpdIpdModel() {
}
public OpdIpdModel(Integer year, Integer month, String monthString, Integer iPD, Integer oPD, String percent) {
this.year = year;
this.month = month;
this.monthString = monthString;
this.iPD = iPD;
this.oPD = oPD;
this.percent = percent;
}
public Integer getYear() {
return year;
}
public void setYear(Integer year) {
this.year = year;
}
public Integer getMonth() {
return month;
}
public void setMonth(Integer month) {
this.month = month;
}
public String getMonthString() {
return monthString;
}
public void setMonthString(String monthString) {
this.monthString = monthString;
}
public Integer getiPD() {
return iPD;
}
public void setiPD(Integer iPD) {
this.iPD = iPD;
}
public Integer getoPD() {
return oPD;
}
public void setoPD(Integer oPD) {
this.oPD = oPD;
}
public String getPercent() {
return percent;
}
public void setPercent(String percent) {
this.percent = percent;
}
}
API 服务类:
public interface ApiService {
@GET("/Report/GetOpdIpdComparison?departmentId=473")
Call<ModelResponse> getAllOpdIpdData();
}
ModelResponse 类
public class ModelResponse {
//@SerializedName("OpdIpdComparison") //for gson converter
@Json(name = "OpdIpdComparison") //for moshi converter
private List<OpdIpdModel> OpdIpdComparison;
public ModelResponse(List<OpdIpdModel> opdIpdComparison) {
OpdIpdComparison = opdIpdComparison;
}
public List<OpdIpdModel> getOpdIpdComparison() {
return OpdIpdComparison;
}
public void setOpdIpdComparison(List<OpdIpdModel> opdIpdComparison) {
OpdIpdComparison = opdIpdComparison;
}
}
检索 Jason 数据的主类:
public class OpdIpdAnalysis extends AppCompatActivity{
ApiService service;
TokenManager tokenManager;
Call<ModelResponse> call;
private ListView mListView;
//GraphView
private BarChart mBarChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_opd_ipd_analysis);
mListView = findViewById(R.id.mListView);
//GraphView casting
mBarChart = (BarChart)findViewById(R.id.barChart);
//code for retrofit call
Call<List<OpdIpdModel>> call2 = service2.getGraphData();
call2.enqueue(new Callback<List<OpdIpdModel>>() {
@Override
public void onResponse(Call<List<OpdIpdModel>> call, Response<List<OpdIpdModel>> response) {
if (response.body() != null){
List<BarEntry> barEntries = new ArrayList<>();
for (OpdIpdModel opdIpdModel : response.body().getOpdIpdComparison()){
barEntries.add(new BarEntry(opdIpdModel.getoPD(), opdIpdModel.getiPD()));
}
BarDataSet barDataSet = new BarDataSet(barEntries, "");
barDataSet.setColors(ColorTemplate.COLORFUL_COLORS);
BarData barData = new BarData();
barData.setBarWidth(0.9f);
mBarChart.setVisibility(View.VISIBLE);
mBarChart.animateY(4000);
mBarChart.setData(barData);
mBarChart.setFitBars(true);
Description description = new Description();
description.setText("Growth rate per month");
}
}
@Override
public void onFailure(Call<List<OpdIpdModel>> call, Throwable t) {
myProgressBar.setVisibility(View.GONE);
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Network Status: " + t.getMessage(), Snackbar.LENGTH_LONG);
View snackbarView = snackbar.getView();
snackbarView.setBackgroundColor(Color.parseColor("#e64a19"));
TextView tv = (TextView) snackbarView.findViewById(R.id.snackbar_text);
tv.setTextColor(Color.WHITE);
snackbar.show();
}
});
}
现在,当我启动我的应用程序时,它工作正常,但数据未显示 图视图。我该如何解决这个问题
我的布局没有问题。
提前致谢。
【问题讨论】:
-
您遇到的错误是什么?您的应用在哪一行崩溃?
-
@Yserbius 应用程序现在工作正常,因为我根据 akshay_shahane 更新了我的代码,但问题是在 graphView 中没有显示任何内容,它是空白的。不知道为什么!!
-
您是否仍然面临或解决这个问题?
-
问题已解决,但我在 xAxis 上的标签仍有一些问题