- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 MPAndroidChart我的 android 应用程序中的饼图库,使用 mysql 服务器数据。我使用 volley 库从服务器检索数据。
我可以成功地检索数据 json:
com.example.bharat.plantnow D/ChartActivity﹕ Location Response: [{"treecondition":"Balanced","Count":"2"},{"treecondition":"Dieseased","Count":"1"},{"treecondition":"Healthy","Count":"4"},{"treecondition":"Imbalance","Count":"2"},{"treecondition":"Transplanted","Count":"1"}]
但在饼图中,我只得到最后一个值,即计数为“1”的“Transplated”,仍然无法显示。请帮助我在代码中出错的地方。
private boolean addData(){
String tag_string_req = "req_location";
showDialog();
StringRequest strReq = new StringRequest(Request.Method.POST,
AppConfig.URL_PIECHART, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Location Response: " + response.toString());
hideDialog();
try {
JSONArray jTreeList = new JSONArray(response);
// boolean error = jObj.getBoolean("error");
// Check for error node in json
for (int i = 0; i < jTreeList.length(); i++) {
JSONObject location = jTreeList.getJSONObject(i);
String treecondition = location.getString("treecondition");
Integer count = location.getInt("Count");
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
for (int j = 0; j < count; j++)
yVals1.add(new Entry((count), j));
ArrayList<String> xVals = new ArrayList<String>();
for(int j = 0; j < treecondition.length();j++)
xVals.add(treecondition);
//create pie data set
PieDataSet dataSet = new PieDataSet(yVals1,"First pie chart");
dataSet.setSliceSpace(3);
dataSet.setSelectionShift(5);
//add many colours
ArrayList<Integer> colors = new ArrayList<Integer>();
for (int c : ColorTemplate.VORDIPLOM_COLORS)
colors.add(c);
for (int c : ColorTemplate.JOYFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.COLORFUL_COLORS)
colors.add(c);
for (int c : ColorTemplate.LIBERTY_COLORS)
colors.add(c);
for (int c : ColorTemplate.PASTEL_COLORS)
colors.add(c);
colors.add(ColorTemplate.getHoloBlue());
dataSet.setColors(colors);
//instantiate pie data object now
PieData data = new PieData(xVals,dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(11f);
data.setValueTextColor(Color.GRAY);
mChart.setData(data);
//undo all highlight
mChart.highlightValue(null);
//update pie chart
mChart.invalidate();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
Toast.makeText(getApplicationContext(), "Json error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Login Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
return false;
}
最佳答案
我 99% 确定我在下面显示的代码不会执行您期望的操作:
String treecondition = location.getString("treecondition");
Integer count = location.getInt("Count");
ArrayList<Entry> yVals1 = new ArrayList<Entry>();
for (int j = 0; j < count; j++)
yVals1.add(new Entry((count), j));
ArrayList<String> xVals = new ArrayList<String>();
for(int j = 0; j < treecondition.length();j++)
xVals.add(treecondition);
我将根据 PieChart
评估这段代码的作用:
您的第一个 for 循环
的迭代次数与 count
变量中指定的次数相同。然后将 count
变量添加到 Entry
。这将导致每个切片具有相同的值和相同的大小,完全独立于您的数据。
您的第二个 for-loop
的迭代次数与 String-variable
treecondition
的字符数一样多。然后,您总是在每次迭代中将相同的字符串添加到您的 x-values
数组中。例如,如果您有一个 String
“Horse”,这将生成一个长度为 5 的 x-values
数组,其中包含 String
“Horse”五次。
如果那不是您希望您的代码执行的操作,那么我建议您再次检查您的for-loops
。
编辑:
我现在明白了。问题是您的“计数”变量为 1。这意味着只有一个 Entry
将被添加到图表中 - 因此您只能看到一个 Entry
。
单独添加更多 x 值
不会在 PieChart
上创建更多切片,因为切片没有更多数据。
关于Android MPAndroidChart 获取部分饼图 : retrieving data from server using volley library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34306012/
只是想知道这些结构之间有什么区别(text、data、rodata、bss 等)在链接描述文件中: .data : { *(.data) } .data : { *(.data*) }
Data 定义为其核心功能之一 gfoldl : gfoldl :: (Data a) => (forall d b. Data d => c (d -> b) -> d -> c b)
以下之间有什么区别:data-sly-use、data-sly-resource、data-sly-include 和 数据-sly-模板?我正在阅读 Sightly AEM 上的文档,我非常困惑。
我有一个 Spring Boot、Spring Data JPA (hibernate) Web 应用程序,并且想引入文本搜索功能。 我理解以下内容 hibernate search 或 spring
我不知道我的代码有什么问题。我读了其他有同样问题的人的一些问题,但没有找到答案。当我尝试编译时出现以下错误: ||In function 'main':| |35|error: expected ex
我不太确定为什么会收到此错误或其含义。我的数据框称为“数据”。 library(dplyr) data %>% filter(Info==1, Male==1) %>% lm(CFL_
我一直在 GitHub 等更现代的网站上看到这些属性,它们似乎总是与自定义的弹出窗口一致,如 title 属性。 Option 1 Option 2 Option 3 Option 4 我在 HTML
如何用 iCloud Core Data 替换我现有的 Core Data?这是我的持久商店协调员: lazy var persistentStoreCoordinator: NSPersistent
我一直在 GitHub 等更现代的网站上看到这些属性,它们似乎总是与自定义的弹出窗口一致,如 title 属性。 Option 1 Option 2 Option 3 Option 4 我在 HTML
我正在通过 this project 在 Android 上摆弄 node.js ,我需要一种方法将 js 文件部署到私有(private)目录(以隐藏源代码,防止用户篡改),该目录也物理存在于文件系
大家好我有点沮丧,所以我希望得到一些帮助。我的项目在 SwiftUI 中。我想使用图像选择器将图像保存到 Core Data。我实现了让 ImagePicker 工作,但我正在努力转换 Image -
我有以下数据和代码: mydf grp categ condition value 1 A X P 2 2 B X P 5
我一直在努力解决这个问题,但我根本找不到任何解决问题的方法。希望这里有人可以提供帮助。 我正在尝试为具有以下结构的某些数据创建个人选择矩阵: # A tibble: 2,152 x 32 a
我了解 Data.Map.Lazy 和 Data.Map.Strict 是不同的。但是,当您导入 Data.Map 时,您究竟导入了什么:严格的、惰性的还是两者的组合? 最佳答案 懒人。看着docs
我正在开发一个 C 程序,用于从 BerkeleyDB DBTree 数据库中提取数据值与特定模式匹配的记录。我创建数据库,打开它,将键的 DBT 和数据的另一个 DBT 清零,将 DBT 标志设置为
所以我有以下成员(member)历史表 User_ID | Start date | End Date | Type(0-7) | ---------------------------
随着最近推出的包dataframe ,我认为是时候正确地对各种数据结构进行基准测试,并突出每种数据结构的优势。我不是每个人的不同优势的专家,所以我的问题是,我们应该如何对它们进行基准测试。 我尝试过的
我有来自 API 的数据,但无法将数组中的数据设置为 vue.js 中的 this.data这是来自 API 的数据(JSON) 你能告诉我这个语法吗 {"id":1613, "name_org":"
在 Vue.js到目前为止,我已经找到了两种定义数据的方法:data: {} 和 data() { return; }. data: { defaultLayout: 'default' }
我正在研究Spring Data Rest Services,并在自定义拦截器中遇到一些问题。之前我使用spring-data-rest-webmvc 2.2.0并以以下方式添加了拦截器。 publi
我是一名优秀的程序员,十分优秀!