2017-03-26 9 views
0

私のデータベースに入力した結果をグラフィックとして と表示したいときは、プログラムを実行してxとyの値を入力すると正しくプロットされず、本質的にセンス。Android:GraphViewでSqliteデータベースのデータを表示

最終的に私はこの非常に基本的なプロジェクトを別の大きなプロジェクトに実装しようと考えています。このプロジェクトを出発点にしたいだけです。ここ

は、私が使用しているコードである:最後

public class MyHelper extends SQLiteOpenHelper { 
private Context con; 
public MyHelper(Context context) { 
    super(context, "MyDatabase",null,1); 
    con = context; 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 

    String createTable="create table MyTable (xValues INTEGER, yValues INTEGER);"; 
    db.execSQL(createTable); 
    Toast.makeText(con,"Table created",Toast.LENGTH_LONG).show(); 

} 

@Override 
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { 

} 

public void insertData(int x, int y){ 

    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues contentValues= new ContentValues(); 

    contentValues.put("xValues", x); 

    contentValues.put("yValues", y); 

    db.insert("MyTable",null,contentValues); 
    Toast.makeText(con, "data inserted", Toast.LENGTH_LONG).show(); 

} 

レイアウト:

<com.jjoe64.graphview.GraphView 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:id="@+id/graph" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentStart="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:hint="x" 
    android:id="@+id/editX"/> 

<Button 
    android:text="Plot" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/editText" 
    android:layout_alignParentEnd="true" 
    android:layout_marginEnd="54dp" 
    android:id="@+id/button" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:hint="y" 
    android:layout_below="@+id/button" 
    android:layout_toEndOf="@+id/editText3" 
    android:id="@+id/editY"/> 

パブリッククラスMainActivityはAppCompatActivity {ここ

GraphView graph; 
Button button; 
EditText xInput, yInput; 
SQLiteDatabase sqLiteDatabase; 
MyHelper myHelper; 
LineGraphSeries<DataPoint> series; 

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

    button=(Button) findViewById(R.id.button); 
    xInput= (EditText) findViewById(R.id.editX); 
    yInput = (EditText) findViewById(R.id.editY); 
    graph = (GraphView) findViewById(R.id.graph); 

    myHelper =new MyHelper(this); 
    sqLiteDatabase = myHelper.getWritableDatabase(); 

    exqButton(); 
} 

private void exqButton() { 
    button.setOnClickListener(new View.OnClickListener(){ 

     @Override 
     public void onClick(View v) { 
      int xVal = Integer.parseInt(String.valueOf(yInput.getText())); 
      int yVal = Integer.parseInt(String.valueOf(xInput.getText())); 

      myHelper.insertData(xVal,yVal); 
      series = new LineGraphSeries<DataPoint>(getData()); 
      graph.addSeries((series)); 
     } 
    }); 


} 

private DataPoint[] getData() { 

    //read data from db 

    String[] columns = {"xValues", "yValues"}; 
    Cursor cursor = sqLiteDatabase.query("MyTable", columns, null, null, null,null,null,null); 
    DataPoint[] dp = new DataPoint[cursor.getCount()]; 
    for(int i = 0;i<cursor.getCount(); i++){ 
     cursor.moveToNext(); 
     dp[i]=new DataPoint(cursor.getInt(0), cursor.getInt(1)); 

    } 

    return dp; 
} 

データベースクラスですを拡張します

私はこれに比較的新しいので、その何か明白な行方不明、何か助けていただければ幸い、感謝します!

答えて

0

あなたが言ったことから問題を推測するのは難しいです。

グラフは正しくプロットされず、グラフは意味をなさない です。

私はあなただった場合、私はこれらの手順を実行します。 1.データベースとテーブルが正しく作成されているかどうか。 2.テーブルインサートが正常に動作しているかどうか。 3.適切な値を返すx、y値を照会することはできません。 4.グラフにプロットする前に値を印刷します。 5.最後にチェックしてください - グラフAPIをうまく実装しましたか?

プログラミングで重要なことの1つは、デバッグ Androidの問題を特定するためにloggerまたはsystem.out.printlnステートメントを使用します。

幸運。

関連する問題