پر کردن نمودار دایره ای
با سلام
همونطور که از تیتر سوال مشخصه من در پر کردن نمودار دایره ایم به مشکل خوردم.
از هیچ کتابخانه اماده ای هم استفاده نکردم . من از کتابخانه سفارشی استفاده کردم.
درون برنامم که یه بازی هست من 10 بازیکن دارم و 9 عمل که اون 10 بازیکن انجام میدن.
همچنین برای هر 9 عملم یک نمودار دایره ای جداگانه دارم.
که مشخص میکنه مثلا هر 10 بازیکنم چند درصد از کل یک عمل رو انجام دادن.
حالا به طور مثال چطور برای یکی از این نمودارها داده ها رو بهش بدم که در نمودارم نشون بده
بازم سلام
من با یه حلقه For انجامش دادم ولی خوب کار نمیده چون من درون این حلقه یه سری شرط دارم که براساس این شرطها مقادیری به متغیرهایی اضافه میشه که در آخر با یه فرمول ریاضی اون متغیر ها رو به درصد تبدیل کردم که در نمودارم نمایش بده..
ولی مقادیر درون شرط ها خوب اضافه نمیشن
ینی با هر بار اجرای حلقه اون متغیر ها هم اضافه میشن که انگار شرطهام درست کار نمیدن . درصورتی که در ظاهر درستن...
کد رو میذارم ببینید:
List<Sabt_Bazi> listBazi = db.getSabt();
for (int i = 0; i < listBazi.size(); i++) {
for (final Sabt_Bazi m: listBazi) {
String strply = m.Player;
String strope = m.Operation;
if (listBazi.get(i).Operation.equals("Pass")) {
//Pass یه شمارنده برای کل
counterAllPass += 1;
Log.i("counterAllPass :", "" + counterAllPass);
if (strply.equals("CB")) {
// این بازیکن Pass یه شمارنده برای
PassCB++;
Log.i("PassCB :", "" + PassCB);
}
else if (strply.equals("LB")) {
// این بازیکن Pass یه شمارنده برای
PassLB++;
Log.i("PassLB :", "" + PassLB);
}
else if (strply.equals("RB")) {
// این بازیکن Pass یه شمارنده برای
PassRB++;
Log.i("PassRB :", "" + PassRB);
}
else if (strply.equals("CM")) {
// این بازیکن Pass یه شمارنده برای
PassCM++;
Log.i("PassCM :", "" + PassCM);
}
else if (strply.equals("LM")) {
// این بازیکن Pass یه شمارنده برای
PassLM++;
Log.i("PassLM :", "" + PassLM);
}
else if (strply.equals("RM")) {
// این بازیکن Pass یه شمارنده برای
PassRM++;
Log.i("PassRM :", "" + PassRM);
}
else if (strply.equals("CAM")) {
// این بازیکن Pass یه شمارنده برای
PassCAM++;
Log.i("PassCAM :", "" + PassCAM);
}
else if (strply.equals("CDM")) {
// این بازیکن Pass یه شمارنده برای
PassCDM++;
Log.i("PassCDM :", "" + PassCAM);
}
else if (strply.equals("CF")) {
// این بازیکن Pass یه شمارنده برای
PassCF++;
Log.i("PassCF :", "" + PassCF);
}
else if (strply.equals("ST")) {
// این بازیکن Pass یه شمارنده برای
PassST++;
Log.i("PassST :", "" + PassST);
}
}
}
int[] dataPass = new int[10];
String[] strDataPass = new String[10];
try {
//int counterAllPass = 100 * counterAllPass;
// Log.i("jamkolopp : ", "" + counterAllPass);
dataPass[0] = (PassCB * 100 / counterAllPass);
dataPass[1] = (PassLB * 100 / counterAllPass);
dataPass[2] = (PassRB * 100 / counterAllPass);
dataPass[3] = (PassCM * 100 / counterAllPass);
dataPass[4] = (PassLM * 100 / counterAllPass);
dataPass[5] = (PassRM * 100 / counterAllPass);
dataPass[6] = (PassCAM * 100 / counterAllPass);
dataPass[7] = (PassCDM * 100 / counterAllPass);
dataPass[8] = (PassCF * 100 / counterAllPass);
dataPass[9] = (PassST * 100 / counterAllPass);
strDataPass[0] = String.valueOf(dataPass[0]) + "% CB";
strDataPass[1] = String.valueOf(dataPass[1]) + "% LB";
strDataPass[2] = String.valueOf(dataPass[2]) + "% RB";
strDataPass[3] = String.valueOf(dataPass[3]) + "% CM";
strDataPass[4] = String.valueOf(dataPass[4]) + "% LM";
strDataPass[5] = String.valueOf(dataPass[5]) + "% RM";
strDataPass[6] = String.valueOf(dataPass[6]) + "% CAM";
strDataPass[7] = String.valueOf(dataPass[7]) + "% CDM";
strDataPass[8] = String.valueOf(dataPass[8]) + "% CF";
strDataPass[9] = String.valueOf(dataPass[9]) + "% ST";
Log.i("cb", String.valueOf(dataPass[0]) + "% CB");
Log.i("lb", String.valueOf(dataPass[1]) + "% LB");
Log.i("rb", String.valueOf(dataPass[2]) + "% RB");
Log.i("cm", String.valueOf(dataPass[3]) + "% CM");
Log.i("lm", String.valueOf(dataPass[4]) + "% LM");
Log.i("rm", String.valueOf(dataPass[5]) + "% RM");
Log.i("cam", String.valueOf(dataPass[6]) + "% CAM");
Log.i("cdm", String.valueOf(dataPass[7]) + "% CDM");
Log.i("cf", String.valueOf(dataPass[8]) + "% CF");
Log.i("st", String.valueOf(dataPass[9]) + "% ST");
pieChart = (PieChart) findViewById(R.id.pieChart1);
pieChart.setData(dataPass, "H");
pieChart.setLabels(strDataPass);
// pieChart.invalidate();
}
catch (Exception ex) {}
}
log هامو هم میذارم که نتایج روببینید:
اینم log:
06-19 21:32:44.247: I/PassLB :(1813): 1 06-19 21:32:44.247: I/PassLB :(1813): 2 06-19 21:32:44.247: I/PassCB :(1813): 1 06-19 21:32:44.247: I/PassCB :(1813): 2 06-19 21:32:44.247: I/PassLM :(1813): 1 06-19 21:32:44.247: I/PassRM :(1813): 1 06-19 21:32:44.247: I/PassRM :(1813): 2 06-19 21:32:44.247: I/PassLB :(1813): 3 06-19 21:32:44.247: I/PassCB :(1813): 3 06-19 21:32:44.247: I/PassLM :(1813): 2 06-19 21:32:44.247: I/PassCM :(1813): 1 06-19 21:32:44.247: I/PassLB :(1813): 4 06-19 21:32:44.247: I/PassCB :(1813): 4 06-19 21:32:44.257: I/PassCB :(1813): 5 06-19 21:32:44.257: I/PassLB :(1813): 5
اینم log بعدی :
06-19 21:33:30.597: I/PassLB :(1813): 6 06-19 21:33:30.597: I/PassLB :(1813): 7 06-19 21:33:30.597: I/PassCB :(1813): 6 06-19 21:33:30.597: I/PassCB :(1813): 7 06-19 21:33:30.597: I/PassLM :(1813): 3 06-19 21:33:30.597: I/PassRM :(1813): 3 06-19 21:33:30.597: I/PassRM :(1813): 4 06-19 21:33:30.597: I/PassLB :(1813): 8 06-19 21:33:30.597: I/PassCB :(1813): 8 06-19 21:33:30.597: I/PassLM :(1813): 4 06-19 21:33:30.597: I/PassCM :(1813): 2 06-19 21:33:30.597: I/PassLB :(1813): 9 06-19 21:33:30.597: I/PassCB :(1813): 9 06-19 21:33:30.597: I/PassCB :(1813): 10 06-19 21:33:30.597: I/PassLB :(1813): 10 06-19 21:33:30.597: I/PassRB :(1813): 1
همینطور تا آخر..
انگار اصلا شرطی در کار نیست..
کسی میدونه مشکل کجاس؟؟؟؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .