在Graph上打印SQLite数据库数据 [英] Printing SQLite database data on Graph

查看:123
本文介绍了在Graph上打印SQLite数据库数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个活动,第一个要求用户在EditText中输入数据,然后用户按下按钮,该值保存在SQLite数据库中,并显示在第二个活动的TextView中。



除了在TextView中显示它之外,我还希望它在Graph中显示为一个点,但不知道如何去做。图中的点是浮动的,当我尝试转换浮动TextView结果它只是不会工作。

无论如何,这里是java文件的代码(第二个活动):

p>

  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);
工具栏工具栏=(工具栏)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);

//这里是要点 - 这些都是默认值,不要想它们
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();

$ b $ //将产品添加到数据库
public void addButtonClicked(View view){
Product product = new Product(buckysInput.getText()。toString ());
dbHandler.addProduct(product);
printDatabase();
}

//删除项目
public void deleteButtonClicked(View view){
String inputText = buckysInput.getText()。toString();
dbHandler.deleteProduct(inputText);
printDatabase();


//打印数据库
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指向结果中的一个位置
Cursor c = db.rawQuery(query,null);
//移至结果中的第一行
c.moveToFirst();

//最后一行之后的位置表示结果的结尾
while(!c.isAfterLast()){
if(c.getString(c.getColumnIndex( productname))!= null){
dbString + = c.getString(c.getColumnIndex(productname));
dbString + =\\\
;
}
c.moveToNext();
}
db.close();
return dbString;


解决方案

从一点到另一点,你可以扩展textview或imageview,然后覆盖onDraw(Canvas canvas),canvas.drawLine(),你可以解决这个问题。

I have two activities, first one asks user to input data in EditText and then user presses on button and that value is saved in SQLite database and showed in second's activites TextView.

Besides showing it in TextView I also want it to be displayed in Graph as a point, but have no idea how to do it. Points in graph are Float and when i try to convert TextView result in float it just wont work.

Anyway, here's the code of java file (second activity):

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("");
    }

}

If you need me to post some extra code just write below.

Thanks!

EDIT

 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;
    }

解决方案

if u want to draw lines from one point to others point,u can extends textview or imageview,then Override onDraw(Canvas canvas),canvas.drawLine(),u can solve the problem

这篇关于在Graph上打印SQLite数据库数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆