2017-06-27 78 views
0

有人可以解釋第一段代碼的作用嗎?我知道第二段代碼是刪除RoutineTable中DayOfWeek爲selectedDay的所有內容。如果有人能通過它,這將是驚人的!先謝謝你!從數據庫中刪除數據時,此代碼執行什麼操作?

代碼的第一片....

private void deleteRoutine() { 
myDb.deleteRoutineForCurrentDay(currentDay); 
Intent intent = getIntent(); 
overridePendingTransition(0, 0); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
finish(); 
overridePendingTransition(0, 0); 
startActivity(intent); 

}

第二一段代碼....

public void deleteRoutineForCurrentDay(String selectedDay) 
{ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.execSQL("DELETE FROM " + RoutineTable + " WHERE DayOfWeek ='" + selectedDay + "'"); 
} 

P.S.如果有人可以解釋使用db.execSQL,db.rawQuery和db.insert之間的區別?

+1

文檔狀態呼叫之間的差別相當明確:https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#execSQL%28java.lang。字符串%29 – scrappedcola

+0

請停止將'android-studio'標籤添加到您的帖子中。 IDE完全**不相關**。 –

回答

1

在這裏,你必須通過線

myDb.deleteRoutineForCurrentDay(currentDay); 

行執行你的方法,在刪除您的表中的數據的變量

然後

Intent intent = getIntent(); 

爲了使用您獲得實例意圖。

overridePendingTransition(0, 0); 

在這裏,你做了一個mnistake,是的,它需要兩個整數,但它們是兩個動畫,與詮釋你可以做一個參考,以將要執行的,而不是默認的動畫動畫。

intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 

您取消設置動畫轉換時的另一項活動開始

有:finish();

您調用的方法在銷燬用於:

  • 辭退任何對話框中活動正在管理。
  • 關閉活動管理的所有遊標。
  • 關閉所有打開的搜索對話框

startActivity(intent);

,因爲你不有一個活動,甚至一個類的引用您將有一個錯誤。

爲了您的另一個問題

附:如果有人可以解釋使用db.execSQL,db.rawQuery和db.insert之間的區別?

內部我不知道的性差異,但與

db.execSQL(); 

你只需執行一個SQL指令,它不會引發反應。

db.rawQuery(); 

您有一個光標作爲結果,可用於任何目的。

db.insert();

你有辦法來建立你的查詢,而無需SQL,你只要把你的數據和多數民衆贊成。

在這裏您有更多信息。

SQLiteDatabase Documentation

我希望我的解釋可以幫助你。

好運:3

+0

非常感謝你的cookieCat。這是最有幫助的! –

+0

請標記答案:3 – cookieCat

+0

對不起在這裏。我勾選了綠色勾號圖標 –