我編輯過源代碼,但我有錯誤,並且我不明白在哪裏,爲什麼會發生錯誤,這個的源代碼的類LineGraph.java導致:java.lang.InstantiationException,但我不知道如何解決,爲什麼
公共類LineGraph延伸活動{
public static final String ROW_ID = "id";
public static final String ROW_NAMA = "nama";
public static final String ROW_BERAT = "berat";
public static final String DATABASE_NAME = "tes.sqlite";
public static final String DATABASE_TABLE = "tis";
public static final int DATABASE_VERSION = 1;
public SQLiteDatabase database;
public DBHelper dbhelper;
public final Context kontext;
public static class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + ROW_ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + ROW_NAMA
+ " TEXT NOT NULL, " + ROW_BERAT + " TEXT NOT NULL);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public LineGraph(Context c) {
kontext = c;
}
public LineGraph open() {
dbhelper = new DBHelper(kontext);
database = dbhelper.getWritableDatabase();
return this;
}
public void close() {
dbhelper.close();
}
public long createEntry(String data, String date) {
// , String date
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(ROW_NAMA, data);
cv.put(ROW_BERAT, date);
return database.insert(DATABASE_TABLE, null, cv);
}
public String getBMIID() {
// TODO Auto-generated method stub
String[] column = new String[] { ROW_ID };
Cursor c = database.query(DATABASE_TABLE, column, null, null, null,
null, null);
String result = "";
int iID = c.getColumnIndex(ROW_ID);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iID);
}
return result;
}
public String getBMIDataData() {
String[] column = new String[] { ROW_NAMA };
Cursor c = database.query(DATABASE_TABLE, column, null, null, null,
null, null);
String result = "";
int iData = c.getColumnIndex(ROW_NAMA);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iData);
}
return result;
}
public String getBMIDateData() {
String[] column = new String[] { ROW_BERAT };
Cursor c = database.query(DATABASE_TABLE, column, null, null, null,
null, null);
String result = "";
int iDate = c.getColumnIndex(ROW_BERAT);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iDate);
}
return result;
}
public void updateEntry(long lId, String mData, String mDate) {
// TODO Auto-generated method stub
ContentValues cvUpdate = new ContentValues();
cvUpdate.put(ROW_NAMA, mData);
cvUpdate.put(ROW_BERAT, mDate);
database.update(DATABASE_TABLE, cvUpdate, ROW_ID + " = lId", null);
}
public String getData(long l) {
// TODO Auto-generated method stub
return null;
}
public String getDate(long l) {
// TODO Auto-generated method stub
return null;
}
public XYMultipleSeriesDataset getDemoDataset(String title) {
String[] column = new String[] { ROW_NAMA };
Cursor c = dbhelper.getWritableDatabase().query(DATABASE_TABLE,
column, null, null, null, null, null);
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
TimeSeries series = new TimeSeries("Line1");
TimeSeries series2 = new TimeSeries(title);
getBMIDataData();
while (!c.isAfterLast()) {
int date = c.getInt((Integer) c.getColumnIndexOrThrow("bmi_date"));
int weight = c
.getInt((Integer) c.getColumnIndexOrThrow("bmi_data"));
series2.add(weight, date);
c.moveToNext();
}
c.close();
dataset.addSeries(series);
dataset.addSeries(series2);
return dataset;
}
public Intent getIntent(Context context) {
// Lager TimeSeries for den første linja
XYMultipleSeriesDataset dataset = getDemoDataset("Line1");
// Kode for render
XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
// Optimalisering linje1
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.YELLOW);
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setFillPoints(true);
// Optimalisering linje2 husk rekke følgen
XYSeriesRenderer renderer2 = new XYSeriesRenderer();
renderer2.setColor(Color.BLUE);
renderer2.setPointStyle(PointStyle.SQUARE);
renderer2.setFillPoints(true);
// Legger til render seriene
mRenderer.addSeriesRenderer(renderer);
// Optimalisering grafen
mRenderer.setChartTitle("Test");
mRenderer.setZoomEnabled(true);
mRenderer.setZoomButtonsVisible(true);
mRenderer.setBackgroundColor(Color.BLACK);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setXTitle("Dager");
mRenderer.setShowGrid(true);
mRenderer.addSeriesRenderer(renderer2);
Intent intent = ChartFactory.getLineChartIntent(context, dataset,
mRenderer, "Line Graph Title");
return intent;
}
}
,這是logcat的
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{android.graph/android.graph.LineGraph}: java.lang.InstantiationException: android.graph.LineGraph
Caused by: java.lang.InstantiationException: android.graph.LineGraph
有人可以幫助我嗎?
發佈fullstacktrace – njzk2
您是否在AndroidManifest.xml中聲明瞭此活動?如果你這樣做,什麼是'android:name'值? – Wenhui
你已經提供了這個類的構造函數。不要這樣做。這些實例的構建由Android爲您處理。 –