我很抱歉,如果我用词不当,但为了清楚起见,我会尽我所能解释。我正在使用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();
}`
暂无答案!
目前还没有任何答案,快来回答吧!