如何调用arraylist中的所有条目以显示在mpandroidchart中的图形上?

jtjikinw  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(132)

我很抱歉,如果我用词不当,但为了清楚起见,我会尽我所能解释。我正在使用mpandroidchart来绘制一个折线图,我按照这个教程来建立并运行它https://www.numetriclabz.com/android-line-chart-using-mpandroidchart-tutorial/#defining_x-轴U标签。我做了一些调整以适应我的需要等等。
在单击按钮时,我调用一个方法,该方法使用编辑文本字段的值添加另一个条目,在我递增每个按钮的位置,这样代码就类似于 entries.add(new Entry(editTextValue, numEntries)); 这就是我希望它在查看当前活动屏幕时执行的操作,保留上一个值,并添加下一个值。但是,一旦我离开那个活动并返回它,就只剩下最后一个值了。我的理解是,当我调用正在使用的drawgraph方法时,我需要一个for循环来迭代arraylist中的每个元素,但我在这方面运气不好。我试着用 for(Entry e: entries) 并使用e代替numentries,但数据类型不兼容。非常感谢您的帮助!
edit:`public class testactivity extends appcompatactivity{int counter=0;public arraylist entries=新建arraylist<>();公共静态int lifetimenums;公共静态int nums=0;公共静态接口;

public static String entryLabel = Integer.toString(numEntries);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_test);
    reDrawGraph();
}

// Graphing method
public void reDrawGraph(){

    LineChart chart = (LineChart) findViewById(R.id.chart);

    XAxis xAxis = chart.getXAxis();
    xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);

    chart.getAxisLeft().setAxisMaxValue(100);
    chart.getXAxis().setAxisMaxValue(100);

    //Creating list of entries

    LineDataSet dataset = new LineDataSet(entries, "# of Calls");

    // creating labels
    ArrayList<String> labels = new ArrayList<String>();
    for (int i = 0; i < 10 + numEntries; i++) {
        labels.add(Integer.toString(i));
    }

    LineData data = new LineData(labels, dataset);

    entries.add(new Entry(testActivity.nums, numEntries));

    chart.animateXY(1000,1000);
    chart.notifyDataSetChanged();
    chart.invalidate();
    chart.setData(data); // set the data and list of lables into chart

}

public void counterClicked(View view){

    try {

        EditText inputText = (EditText) findViewById(R.id.edit_text_val);
        int localNums = Integer.parseInt(inputText.getText().toString());

        if (counter < 3) {
            nums += localNums;
            counter++;
            numEntries++;

            Toast.makeText(this, "Total Entries" + entries.get(0),
                    Toast.LENGTH_SHORT).show();
            reDrawGraph();
            inputText.getText().clear();
        }

        if (counter == 3){
            lifetimeNums++;
            numEntries++;
            Intent intent = new Intent(this, SelectionActivity.class);

            startActivity(intent);
        }

    }catch (Exception e) {

        Toast.makeText(this, "Please enter a value",
                Toast.LENGTH_SHORT).show();
    }`

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题