Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带SharedReferences的饼图_Android_Android Studio_Sharedpreferences_Pie Chart - Fatal编程技术网

Android 带SharedReferences的饼图

Android 带SharedReferences的饼图,android,android-studio,sharedpreferences,pie-chart,Android,Android Studio,Sharedpreferences,Pie Chart,我需要用SharedReferences中的数据创建一个饼图。这是我代码的一部分,但我不明白为什么这不起作用: SharedPreferences sharedPref = getSharedPreferences("janeiroInfo", Context.MODE_PRIVATE); int ord = sharedPref.getInt("ordenado", 0); int div = sharedPref.getInt("dividas", 0); int alim = shared

我需要用SharedReferences中的数据创建一个饼图。这是我代码的一部分,但我不明白为什么这不起作用:

SharedPreferences sharedPref = getSharedPreferences("janeiroInfo", Context.MODE_PRIVATE);
int ord = sharedPref.getInt("ordenado", 0);
int div = sharedPref.getInt("dividas", 0);
int alim = sharedPref.getInt("alimentacao", 0);
int lux = sharedPref.getInt("luxos", 0);
int poup = sharedPref.getInt("poupanca", 0);
int desp = sharedPref.getInt("despesas", 0);

int saldo = ord - div - alim - lux - poup - desp;

private static String TAG = "Janeiro";


float a = (div*100)/(float) ord;
float b = (alim*100)/(float) ord;
float c = (lux*100)/(float) ord;
float d = (poup*100)/(float) ord;
float e = (desp*100)/(float) ord;
float f = (float) saldo;
private float[] yData = {a, b, c, d, e, f};
private String[] xData = {"Mitch", "Jessica", "Mohammad", "Kelsey", "Sam", "Robert"};
PieChart pieChart;
这是图表代码:

// Graph
    Log.d(TAG, "onCreate: starting to create chart");

    pieChart = (PieChart) findViewById(R.id.idPieChart);

    pieChart.setDescription("   ");
    pieChart.setRotationEnabled(true);
    pieChart.setHoleRadius(25f);
    pieChart.setTransparentCircleAlpha(0);
    pieChart.setCenterText("Super Cool Chart");
    pieChart.setCenterTextSize(10);

    addDataSet();

    pieChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
        @Override
        public void onValueSelected(Entry e, Highlight h) {
            Log.d(TAG, "onValueSelected: Value select from chart.");
            Log.d(TAG, "onValueSelected: " + e.toString());
            Log.d(TAG, "onValueSelected: " + h.toString());

            int pos1 = e.toString().indexOf("(sum): ");
            String sales = e.toString().substring(pos1 + 7);

            for(int i = 0; i < yData.length; i++){
                if(yData[i] == Float.parseFloat(sales)){
                    pos1 = i;
                    break;
                }
            }

            String employee = xData[pos1];
            Toast.makeText(Janeiro.this, "Employee " + employee + "\n" + "Sales: $" + sales + "K", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onNothingSelected() {

        }
    });


    }

private void addDataSet() {
    Log.d(TAG, "addDataSet started");
    ArrayList<PieEntry>  yEntrys = new ArrayList<>();
    ArrayList<String> xEntrys = new ArrayList<>();

    for(int i = 0; i < yData.length; i++){
        yEntrys.add(new PieEntry(yData[i], i));
    }

    for(int i = 1; i < xData.length; i++){
        xEntrys.add((xData[i]));
    }

    // create data set
    PieDataSet pieDataSet = new PieDataSet(yEntrys, "  ");
    pieDataSet.setSliceSpace(2);
    pieDataSet.setValueTextSize(14);

    //add colors
    ArrayList<Integer> colors = new ArrayList<>();
    colors.add(Color.argb(200, 41, 106, 171)); 
    colors.add(Color.argb(229, 121, 68, 182)); 
    colors.add(Color.argb(200, 178, 68, 182)); 
    colors.add(Color.argb(200, 229, 83, 175)); 
    colors.add(Color.argb(200, 182, 68, 106)); 
    colors.add(Color.argb(200, 179, 9, 66)); 
    colors.add(Color.argb(200, 68, 159, 182)); 

    pieDataSet.setColors(colors);

    // add legend
    Legend legend = pieChart.getLegend();
    legend.setForm(Legend.LegendForm.CIRCLE);
    legend.setPosition(Legend.LegendPosition.LEFT_OF_CHART);

    // create pie data object
    PieData pieData = new PieData(pieDataSet);
    pieChart.setData(pieData);
    pieChart.invalidate();

}
而且它工作得很好!但是当我尝试使用SharedReferences时,它不起作用。。应用程序停止

将jar添加到projects-lib文件夹。开发人员还提供了一个示例。您可以对此进行检查,并根据需要进行修改

还有一个演示@

医生

您可以将此外部库用于饼图

将jar添加到projects-lib文件夹。开发人员还提供了一个示例。您可以对此进行检查,并根据需要进行修改

还有一个演示@

医生


您可以将此外部库用于饼图

我看不到任何实际绘制饼图的代码。@PrerakSola抱歉,已更新。您说它不工作是什么意思。。应用程序停止了吗?也添加崩溃日志猫。@PrerakSola当我在emulator上运行我的应用程序时,它返回“不幸的是,我的应用程序已停止”。因此,您的日志猫中一定有错误。如果可以的话,试着理解它并解决它,或者在你的问题中添加日志。我看不到任何实际绘制图表的代码。@PrerakSola抱歉,已更新。你说它不工作是什么意思。。应用程序停止了吗?也添加崩溃日志猫。@PrerakSola当我在emulator上运行我的应用程序时,它返回“不幸的是,我的应用程序已停止”。因此,您的日志猫中一定有错误。如果可以的话,试着理解它并解决它,或者在你的问题中添加日志。谢谢你的回答!事实上,正如我所说,我的PieChart工作正常(当我不使用SharedPreferences时)。问题是我用它的时候。谢谢你的回答!事实上,正如我所说,我的PieChart工作正常(当我不使用SharedPreferences时)。问题是我什么时候用它。
private float[] yData = {25.3f, 10.6f, 66.76f, 44.32f, 46.01f, 16.89f, 23.9f};