0
私が持っている問題で私を助けることができるかどうかは疑問です。
私はSQLiteデータベースを作成しました。特定の日付に投薬が行われたかどうかに基づいて円グラフを作成したいと考えています。テーブルにアンドロイドのsqliteデータベース円グラフ
// sql query to create table for daily routine
String sql6 = "CREATE TABLE "
+ TABLE_DAILY_ROUTINE + " ("
+ COL_DAILY_ROUTINE_DATE + " VARCHAR, "
+ COL_DAILY_ROUTINE_TIME_ID + " INTEGER,"
+ COL_DAILY_ROUTINE_TIME_HOUR + " INTEGER , "
+ COL_DAILY_ROUTINE_TIME_MIN + " INTEGER , "
+ COL_DAILY_ROUTINE_MED_TAKEN + " TEXT ,"
+ COL_DAILY_ROUTINE_MED_QUANTITY + " INTEGER, "
+ COL_DAILY_ROUTINE_MED_ID + " VARCHAR, "
+ "PRIMARY KEY (" + COL_DAILY_ROUTINE_DATE + ", " + COL_DAILY_ROUTINE_TIME_ID + "),"
+ "FOREIGN KEY (" + COL_DAILY_ROUTINE_MED_ID + ") REFERENCES " + TABLE_MEDICATION + "("
+ COL_MEDICATION_ID + ") ON DELETE CASCADE);";
円グラフ活動
public class PieChart extends Activity {
SQLiteDatabase ourDatabase;
Database db;
DatabaseHelper dbHelper;
String date;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pie_chart_layout);
db = new Database(this);
db.open();
dbHelper = new DatabaseHelper(this);
ourDatabase = dbHelper.getWritableDatabase();
String sql = "SELECT DAILY_ROUTINE_MED_TAKEN, COUNT(DAILY_ROUTINE_MED_TAKEN) FROM DAILY_ROUTINE\n" +
"WHERE DAILY_ROUTINE_DATE = ' + date + ' GROUP BY DAILY_ROUTINE_MED_TAKEN " ;
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
calendar.add(Calendar.DATE, 1);
date = sdf.format(calendar.getTime());
Cursor c = ourDatabase.rawQuery(sql, null);
int count = c.getCount();
int[] colors={Color.RED, Color.GREEN};
double[] values = new double[count];
String[] categoryNames = new String[count];
for (int i = 0; i < count; i++) {
c.moveToNext();
categoryNames[i] = c.getString(0);
values[i] = c.getDouble(1);
}
// Instantiating CategorySeries to plot Pie Chart
CategorySeries distributionSeries = new CategorySeries(" Android version distribution as on October 1, 2012");
for (int i = 0; i < categoryNames.length; i++) {
// Adding a slice with its values and name to the Pie Chart
distributionSeries.add(categoryNames[i], values[i]);
}
// Instantiating a renderer for the Pie Chart
DefaultRenderer defaultRenderer = new DefaultRenderer();
for (int i = 0; i < categoryNames.length; i++) {
SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();
seriesRenderer.setColor(colors[i]);
seriesRenderer.setDisplayChartValues(true);
defaultRenderer.addSeriesRenderer(seriesRenderer);
}
defaultRenderer.setChartTitle("Patient Daily Adherance to Medication");
defaultRenderer.setChartTitleTextSize(60);
defaultRenderer.setZoomButtonsVisible(false);
defaultRenderer.setLegendTextSize(70);
defaultRenderer.setLabelsTextSize(80);
Intent intent = ChartFactory.getPieChartIntent(getApplicationContext(), distributionSeries, defaultRenderer, "AChartEnginePieChartDemo");
// Start Activity
startActivity(intent);
c.close();
ourDatabase.close();
}
}
を作成するための
コードは、データベースが正しいと日付で私のハードコードは、文字列の日付を交換するとき、私は円グラフが表示され得ます。
文字列の日付は、日付がデータベースにあるときの前の日です。これは問題ではないでしょう。
私は間違いなしです。
タイトルは表示されていますが、円グラフはありません。問題の内容と問題点を教えてください。
初期のforループとは関係がありますが、私の指を置くことはできません。
だあなたはあなたのコードをデバッグステップバイステップでしようとしたことがありますか? –
はい、私はデバッグを試みましたが、私はアンドロイドに慣れていて、円グラフの使用は私には何か新しいものでした。私はいくつかのチュートリアルを飛ばして、問題を見つけることができないようです。それが何であり、私が見ることができるかあなたは何か考えていますか? –
SQLに改行文字があるのはなぜですか? –