私のデータベースに入力した結果をグラフィックとして と表示したいときは、プログラムを実行して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;
}
データベースクラスですを拡張します
私はこれに比較的新しいので、その何か明白な行方不明、何か助けていただければ幸い、感謝します!