我有一个使用变量作为数据的chartjs。我希望它可以更新,以便可以看到新数据。如果插入数据时我可以做到最好,但我不知道如何执行此操作,其他选择是随着时间间隔进行更新。 我看过https://www.chartjs.org/docs/latest/developers/updates.html,但对我来说没有意义
这是我的代码图表工作仅需对其自身进行更新
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
import com.github.barteksc.pdfviewer.PDFView;
public class MateriActivity extends AppCompatActivity {
PDFView pdfView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_materi);
pdfView = (PDFView)findViewById(R.id.pdfView);
pdfView.fromAsset("PPKI2017.pdf").load();
ImageButton butt1 =(ImageButton)findViewById(R.id.materi_btn);
ImageButton butt2 =(ImageButton)findViewById(R.id.dblist_btn);
butt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent= new Intent(MateriActivity.this,MateriActivity.class);
startActivity(intent);
}
});
butt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent= new Intent(MateriActivity.this,DBListActivity.class);
startActivity(intent);
}
});
}
}
答案 0 :(得分:1)
有几种方法可以实现此目的。
最简单但可能最糟糕的解决方案是仅每x秒刷新一次页面。
但是,此解决方案将使页面上几乎所有的交互性都无用,因为输入等将在页面每次刷新时全部重置。
将以下内容放入您的<head>
部分。
content
将定义每次刷新之间的间隔时间。
<META HTTP-EQUIV="refresh" CONTENT="5">
答案 1 :(得分:0)
有一种方法可以使用function twoSum(arr, S) {
var hashTable = {};
// check each element in array
for (var i = 0; i < arr.length; i++) {
// calculate S - current element
var sumMinusElement = S - arr[i];
// check if this number exists in hash table
// if so then we found a pair of numbers that sum to S
if (hashTable[sumMinusElement.toString()] !== undefined) {
return true;
}
// add the current number to the hash table
hashTable[arr[i].toString()] = arr[i];
}
// return false as default
return false;
}
console.log(twoSum([3, 5, 2, -4, 8, 11], 7));
来调用函数来更新图表(请参见示例:https://jsbin.com/yitep/5/edit?html,js,output)。
或者下一个解决方案是添加一个将在数据插入时调用的函数。您可以致电setInterval
来更新图表。
可能会发生一些您没有或无法获取图表实例的情况,在这种情况下,您可以使用(这是获取实例的唯一方法,如果代码是在另一个脚本中执行的,则需要此实例):
myChart.update()
现在,当您拥有图表实例时,就可以使用数据进行操作,请使用 Chart.helpers.each(Chart.instances, function (chart) {
// your code
}
和addData
(在文档中检查其工作方式)。
问题在于它遍历所有图表,因此您需要以某种方式检查什么是目标图表,您可以使用removeData
进行此操作。该命令将为您提供画布图表ID(在您的情况下为chart.chart.canvas.id
),因此您只能在所选图表上进行更改。
要获取图表选项,您可以使用图表API事件myChart
(检查文档:https://www.chartjs.org/docs/latest/developers/api.html)。
希望有帮助,随时要求更多。