我有两个活动,第一个请求用户在EditText中输入数据,然后用户按下按钮,该值保存在SQLite数据库中,并显示在第二个活动TextView中。
除了在TextView中显示它我还希望它作为一个点显示在Graph中,但不知道如何做到这一点。图中的点是Float,当我尝试将TextView结果转换为float时,它就不会工作了。
无论如何,这是java文件的代码(第二个活动):
public class StatistikaGrafoviMain extends AppCompatActivity {
EditText buckysInput;
TextView buckysText;
StatistikeInputTezinaHelper dbHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_statistika_grafovi_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
buckysInput = (EditText) findViewById(R.id.buckysInput);
buckysText = (TextView) findViewById(R.id.buckysText);
dbHandler = new StatistikeInputTezinaHelper(this, null, null, 1);
printDatabase();
ValueLineChart mCubicValueLineChart = (ValueLineChart) findViewById(R.id.cubiclinechart);
ValueLineSeries series = new ValueLineSeries();
series.setColor(0xFF56B7F1);
// HERE ARE THE POINTS - THESE ARE JUST DEFAULT ONES, DON'T MIND THEM
series.addPoint(new ValueLinePoint("Jan", 2.4f));
series.addPoint(new ValueLinePoint("Feb", 3.4f));
series.addPoint(new ValueLinePoint("Mar", .4f));
series.addPoint(new ValueLinePoint("Apr", 1.2f));
series.addPoint(new ValueLinePoint("Mai", 2.6f));
series.addPoint(new ValueLinePoint("Jun", 1.0f));
series.addPoint(new ValueLinePoint("Jul", 3.5f));
series.addPoint(new ValueLinePoint("Aug", 2.4f));
series.addPoint(new ValueLinePoint("Sep", 2.4f));
series.addPoint(new ValueLinePoint("Oct", 3.4f));
series.addPoint(new ValueLinePoint("Nov", .4f));
series.addPoint(new ValueLinePoint("Dec", 1.3f));
mCubicValueLineChart.addSeries(series);
mCubicValueLineChart.startAnimation();
}
//Add a product to the database
public void addButtonClicked(View view){
Product product = new Product(buckysInput.getText().toString());
dbHandler.addProduct(product);
printDatabase();
}
//Delete items
public void deleteButtonClicked(View view){
String inputText = buckysInput.getText().toString();
dbHandler.deleteProduct(inputText);
printDatabase();
}
//Print the database
public void printDatabase(){
String dbString = dbHandler.databaseToString();
buckysText.setText(dbString);
buckysInput.setText("");
}
}
如果您需要我发布一些额外的代码,请在下面写一下。
谢谢!
修改
public String databaseToString(){
String dbString = "";
SQLiteDatabase db = getWritableDatabase();
String query = "SELECT * FROM " + TABLE_PRODUCTS + " WHERE 1";
//Cursor points to a location in your results
Cursor c = db.rawQuery(query, null);
//Move to the first row in your results
c.moveToFirst();
//Position after the last row means the end of the results
while (!c.isAfterLast()) {
if (c.getString(c.getColumnIndex("productname")) != null) {
dbString += c.getString(c.getColumnIndex("productname"));
dbString += "\n";
}
c.moveToNext();
}
db.close();
return dbString;
}
答案 0 :(得分:0)
如果你想从一个点到另一个点绘制线条,你可以扩展textview或imageview,然后覆盖onDraw(Canvas canvas),canvas.drawLine(),你可以解决问题