我是Android編程的新手。所以,我會用錯誤的技術詞彙,對此表示歉意;) 我有一個應用程序。在這個應用程序中,onCreate
,即時檢查是否創建了我的數據庫(此檢查是第一次使用),如果我的數據庫尚未創建,我將用戶路由到第二個佈局(或活動,我無法確定哪一個是對的詞)。在此活動中,當我嘗試創建具有空指針異常的SQLiteDatabase參數時。 這裏是MainActivity.java的一部分我想在第二個活動中插入一條記錄到我的數據庫
public class MainActivity extends Activity
{
VeriTabani veritabani; // vertiabani means database in turkish
@Override
protected void onCreate(Bundle savedInstanceState)
{
if(db_flag==0)
{
Intent intent = new Intent(MainActivity.this, SecondClass.class);
startActivity(intent);
//...
}
}
}
這裏是我的VeriTabani.java;
public class VeriTabani extends SQLiteOpenHelper
{
static final String VeriTabani="DATABASENAME";
static final int version=1;
public VeriTabani(Context context) {
super(context, VeriTabani, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE TABLENAME (id INTEGER PRIMARY KEY AUTOINCREMENT, xxx STRING,yyy STRING);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXIST TABLENAME");
onCreate(db);
}
}
而且,這裏是我的SecondClass.java;
public class SecondClass extends Activity
{
VeriTabani veritabani;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
SQLiteDatabase db=veritabani.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("xxx", another_parameter);
//...
}
//...
}
}
}
即時消息有此錯誤;
SQLiteDatabase db = veritabani.getWritableDatabase();
我使用相同的VeriTabani類將記錄插入到MainActivity中的數據庫,它的工作原理完美。當我在另一個活動中使用相同的代碼塊時,我無法發現什麼是錯誤的。 我想解決很簡單,但我不能得到它。 感謝您的幫助。